notes

Log | Files | Refs | README

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.