Gamma’s second principle of good OO design is to: Favor object composition over class inheritance . Systems that follow this rule have fewer classes and more objects. Their power is in the ways that the objects can interact with each other. It would be important to have good dynamic models.