[클린코드] 객체지향 설계의 5원칙_ SOLID 원칙이란?

2021. 8. 8. 22:40Life Style/Book

S.O.L.I.D 원칙이란 무엇일까?

 

SRP_ Single Responsibility Principle : 단일 책임 원칙

한 클래스는 하나의 책임만 가져야 한다.

 

OCP_ Open Closed Principle : 개방-폐쇄 원칙

소프트웨어 요소는 확상에는 열려 있으나 변경에는 닫혀 있어야 한다.

 

LSP_ Liskov Substitution Principle : 리스코프 치환 원칙

서브 타입(child component)은 언제나 기반 타입(parent component)으로 교체할 수 있어야 한다.

 

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

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

만약 어떤 클래스를 이용하는 클라이언트가 여러 개이고, 이들이 클래스의 특정 부분만 이용한다면, 여러 인터페이스로 분류하여 클라이언트가 필요한 기능만 전달한다.

(SRP가 클래스의 단일 책임이라면, ISP 는 인터페이스의 단일 책임)

 

DIP_ Dependency Inversion Principle : 의존성 역전 원칙

상위 모델은 하위 모델에 의존하면 안된다. 둘 다 추상화에 의존해야 한다.

추상화는 세부 사항에 의존해서는 안된다. 세부사항은 추상화에 따라 달라진다. 

아래 예제를 통해 이해해보자.