•Sometimes inheritance
is difficult to see because you do not see what is common
•Look for classes that
have shared responsibilities and see if it is possible to define a base
class that can assume those responsibilities
•Recognizing common
base classes is particularly important for OOP. Common code need only be
provided
once in the base class and is automatically inherited by the
derived class (inheritance)
•Consider dropping
classes that are not coupled with any other classes (coupled: using “is
a”, “has a” “uses” relationships)