in reply to Best OOP strategy?
Not perfect, but very helpful: Can you say Bar is a Foo? Try inheritance. Can you say Bar has a Foo? Keep an instance of Foo in Bar, or else construct a temporary one in Bar's methods.
After Compline,Zaxo