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/.