객체지향 설계 5원칙 - SOLID

응집도와 결합도

  • 좋은 소프트웨어 설계를 위해서는 결합도coupling는 낮추고 응집도cohesion은 높여야 한다
  • 결합도
  • 모듈(클래스)간의 상호 의존 정도
  • 응집도
  • 하나의 모듈 내부 구성 요소들의 기능적 관련성

 

SRP Single Responsibility Principle: 단일 책임 원칙

  • 어떠한 클래스를 변경해야 하는 이유는 한가지 뿐이어야 한다.

 

OCP Open Closed Principle

  • 자신의 확장에는 열려 있고, 주변의 변화에 대해서는 닫혀 있어야 한다.
  • 상위 클래스 또는 인터페이스를 중간에 둠으로써, 자신은 변화에 대해서는 폐쇄적이지만 인터페이스는 외부의 변화에 대해서 확장을 개방해 줄 수 있다.


LSP Liskov Substution Principle

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

 

ISP Interface Segregation Principle 인터페이스 분리 원칙

  • 클라이언트는 자신이 사용하지 않는 메서드에 의존 관계를 맺으면 안 된다.
  • 프로젝트 요구 사항과 설계에 따라 SRP / ISP 선택


DIP Dependency Inversion Principle 의존 역전 원칙

  • 자신보다 변하기 쉬운 것에 의존하지 말아야 한다

 

'TIL' 카테고리의 다른 글

코드업 C언어 기초 100제  (1) 2023.10.30
WebSquare 2 - 개요  (0) 2023.08.01
IT 전체 영역 큰 그림 보기  (0) 2023.07.05
객체지향의 사실과 오해 (조영호, 2015)  (0) 2023.06.29
[JavaScript] 아스키코드 변환  (0) 2023.02.10