Instrument Repository
Principles
Principles
"Customers should not rely on methods they don't use."
"Software entities (classes, modules, methods, etc.) should be open for extension, but closed for modification"
"Subclasses must be able to replace base classes without the client code noticing."
"A module (e.g. a class) should have one, and only one, reason to change."