Wow, I must be missing a whole lot of context in that discussion...�� (instant reaction as well, lol)
- a product (CD, book, etc.) does not 'buy' - it can be bought, sure, but it has no buying��action.�� Even in another context a CD does not 'play'... aMusicPlayer.play(aCD).
- However, a��customer can 'buy' a product...��
- customer.buy(aCD) -or-
- customer.addToCart(aCD)
- customer.checkOut(aCart)
- Invoice.new(aCart), etc.��
- ... but the CD doesn't DO anything.��
- I get the idea that different products might have different behaviour when they are 'bought' - but these are, in this example, fulfillment - not the 'buy' action...��
- aCDstream��might be set for download
- aCDphysical might be set to physically pull off a shelf and ship
- aCDcare might send an email on warranty, whatever... but let's name it better than 'buy' :)
Tim, thanks for the link - I'm always trying to expand my thinking about object modeling - discovering cool ways/things others are��thinking about...�� Now I have to go dust off all my old POS (point of sale, not piece of s#&t) code and see how poorly I may have modeled those environments!!
Thanks for the morning diversion!�� Cheers.