Hello all - I am reviving this thread with some OO Design archaeology I stumbled upon while revising my course notes. In 1995 Peter Coad proposed a "Do it myself" pattern for assigning responsibilities that says: > > "I do those things that are normally done to the actual object that I'm an > abstraction of." >
Anyway, this heuristic could explain cd.buy() Here's the reference (but it's out of print...): Coad, P. (1997). Object Models : Strategies, Patterns, and Applications (2nd Revised ed. edition). Upper Saddle River, N.J : Pearson Technology Group.