Flexibility: add new subclasses/variants.
Implementation: subclassing, inheritance, overriding.
Flexibility: replace/add algorithms used.
Implementation: common interface/superclass for algorithm variants, multiple implementations of algorithms, delegation of implementation.
Flexibility: multiple atomic objects and composites.
Implementation: common interface for composites and atoms in superclass, multiple implementations.
Flexibility: multiple families of primitives.
Implementation: common interface for primitives across families as abstract functions, implementation in subclasses.
Flexibility: multiple families of constructor primitives.
Implementation: common constructor interface across families as abstract functions, implementation in subclasses.
Flexibility: multiple families of constructors.
Implementation: common constructor interface across families, multiple implementations, factory invokes creation operations directly from chosen family.
|
|
|