Solid Principles S - Single Responsibility Principle (known as SRP) - “One class should have one and only one responsibility” O - Open/Closed Principle - “Software components should be open for extension, but closed for modification” L - Liskov’s Substitution Principle - “Derived types must be completely substitutable for their base types” I - Interface Segregation Principle - “Clients should not be forced to implement unnecessary methods which they will not use” D - Dependency Inversion Principle - “Depend on abstractions, not on concretions”