SOLID

  • attributedTo @robert-martin
  • hasSummaryPoints
    • The Single-responsibility principle: "There should never be more than one reason for a class to change."[5] In other words, every class should have only one responsibility.[6]
    • The Open–closed principle: "Software entities ... should be open for extension, but closed for modification."[7]
    • The Liskov substitution principle: "Functions that use pointers or references to base classes must be able to use objects of derived classes without knowing it."[8] See also design by contract.[8]
    • The Interface segregation principle: "Many client-specific interfaces are better than one general-purpose interface."[9][4]
    • The Dependency inversion principle: "Depend upon abstractions, [not] concretions."[10][4]