Programming Language/언어 기본

객체 지향 설계 5원칙 - SOLID

LeeJerry 2021. 10. 18. 00:33
높은 응집도와 낮은 결합도,
관심사의 분리를 위해

 

 

1. SRP(Single Responsibility Principle) : 단일 책임 원칙

  • 어떤 클래스를 변경해야 하는 이유는 오직 하나 뿐이다.

 

2. OCP (Open Closed Principle) : 개방 폐쇄 원칙

  • 소프트웨어 엔티티는 확장에 대해서는 열려 있어야 하지만 변경에 대해서는 닫혀 있어야 한다.

 

3. LSP (Liskov Substitution Principle) : 리스코프 치환 원칙

  • 서브 타입은 언제나 자신의 기반 타입으로 교체할 수 있어야 한다.

 

4. ISP (Interface Segregation Principle) : 인터페이스 분리 원칙

  • 클라이언트는 자신이 사용하지 않는 메서드에 의존 관계를 맺으면 안 된다.
  • 인터페이스는 그 역할에 충실한 최소한의 기능만 공개하라.

 

5. DIP (Dependency Inversion Principle) : 의존 역전 원칙

  • 추상화된 것은 구체적인 것에 의존하면 안 된다. 구체적인 것이 추상화된 것에 의존해야 한다.
  • 자신보다 변하기 쉬운 것에 의존하지 마라.