From: Daniel Waite Date: 2006-08-21T14:55:26+09:00 Subject: Strategy pattern / interface design arrangement Hi all. I've got a design question. Imagine you have a module, CreditCardProcessor. Inside CreditCardProcessor is another module called AuthorizeNet. CreditCardProcessor acts as an interface that AuthorizeNet must implement. (This is, from what I understand, a reasonably accurate implementation of the Strategy pattern (behavioral implementation behind a common interface). However, if you feel I could be more accurate, don't hesitate to say so. :) Now imagine we have a class named Acme that extends class Company. Company includes CreditCardProcessor and has an instance variable called @credit_card_processor. Now Acme has all the tools it needs to process cards. However, do we say... @company.process_credit_card(card) # A pass-through (convenience) method ... or... @company.credit_card_processor.process_card(card) If you were designing (or have designed) such an arrangement, which is your preferred method and why? (Or if you have an entirely different suggestion I'm all ears.) Thanks, much! - Daniel -- Posted via http://www.ruby-forum.com/.