• Single Responsibility - A class should have only a single responsibility
  • Open/ Closed Principle - A class should be open for extension and closed for modification
  • Liskov Substitution - Objects should be replaceable with instances of their sub types without altering program correctness
  • Interface Segregation - Client should not be forced to depend on interfaces that they don’t use
  • Dependency Inversion - Program to an interface not to an implementation

Good Software Design Practices


Sources

Design Patterns CA Prep