Software Reuse: Principles, Patterns, Prospects
Mária Smolárová, Pavol Návrat · Hrčak Portal of scientific journals of Croatia (University Computing Centre) · 1997
classes make object-oriented class libraries more reusable and easier to understand. The mechanism that abstract classes provide is one of the most important ones: classes should be derived from abstract superclasses as often as possible and all subclasses of an abstract class should only add or refine but not override operations of the parent class [GHJV95]. Then, all subclasses can respond to the identical interface i.e., they all are subtypes of the same abstract class. Also, the different views of an implementor and a reuser that may cause diversity in class hierarchy should be pointed out. An implementor is mostly concerned with quick derivation of a new class implementation from the existing ones. A reuser is interested more in the interface inheritance that says when a class can be used in place of another one [Edw92]. Another source of potential difficulties is that class libraries may become vast. Reusing classes from such a hierarchy may be a time consuming laborious task. ...