An object-oriented design requires that the developer first find some of the key abstractions of the system along with their well-defined public interfaces. The second step consists of describing the relationships between these key abstractions. In the object-oriented paradigm, we discuss these relationships as falling into one of four categories:
the uses relationship (object-based);
the containment relationship (object-based);
the inheritance relationship (class-based);
the association relationship (object-based).
The term “object-based versus class-based” does not describe the method in which a relationship is defined, namely, with objects or with ...