Created Tuesday 22 April 2014
programming by difference is when you define a new class by picking a closely related class as its parent class and adding only code that makes the new class different from the parent class
- watch out for violations of the LiskovSubstitutionPrinciple!
- Michael Feathers suggest using a NormalizedHierarchy to ensure LSP
- ultimately, it may make sense to use ObjectComposition