design_principles.md (531B)
1 # Design Principles 2 3 ## Separating what changes from what stays the same 4 5 Identify the aspects of your application that vary and separate them from what 6 stays the same. 7 8 As simple as this concept is, it forms the basis for almost every design 9 pattern. All patterns provide a way to let some part of a system vary 10 independently of all other parts. 11 12 ## Program to an interface, not an implementation. 13 14 The point is to exploit polymorphism by programming to a supertype so that the 15 actual runtime object isn’t locked into the code.