2010-08-21, 02:22 PM
Have foo's constructor take whatever parameters are appropriate for its level of abstraction. Should callers of foo's constructor know about foo having a bar? If yes, go ahead and pass the bar object. You may want to have it take an abstract class or interface (or the equivalent in your language) instead.

