SOLID 원칙

1. 단일책임원칙 (SRP)

Single Responsibility Principle)

  • 클래스, 함수 등은 하나의 책임을 가져야 한다.

2. 개방-폐쇄 원칙 (OCP)

Open-Closed Principle

  • 기존의 코드를 변경하지 않고 기능을 추가하거나 수정할 수 있어야 한다.

3. 리스코프 치환법칙 (LSP)

Liskov Substitution Principle

  • 자식 클래스는 부모 클래스에서 가능한 행동을 수행할 수 있어야 한다.
  • 부모와 자식사이에는 일관성이 있어야 한다.
    • Shape.width, Circle.width, Triangle.width

4. 의존역전원칙 (DIP)

Dependency Inversion Principle

  • 의존관계를 맺을때는 변화하기 어려운것에 의존해야 한다.
    • 가능하면 추상화된 객체끼리 관계가 있을경우 변화를 기대하기 어렵다.

5. 인터페이스 분리법칙 (ISP)

Interface Segregation Principle

  • 자신이 사용하지 않는 인터페이스는 구현하지 않아야 한다.