sungwony

[디자인패턴] 디자인패턴 입문 - SOLID원칙 본문

development/디자인패턴

[디자인패턴] 디자인패턴 입문 - SOLID원칙

일상이상삼상 2018. 4. 20. 15:08

SOLID 원칙


- SOLID

- SRP, OCP, LSP, DIP, ISP


1) SRP

- Single Responsibility Principle : 단일 책임 원칙

- SRP에서 책임이란 기본 단위로 객체를 지칭한다.

- 객체는 하나의 책임만을 가져야 한다는 것을 의미한다.



2.) OCP

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

- 기존의 코드를 변경하지 않으면서 기능을 추가할 수 있도록 설계되어야 한다.


OCP를 불만족 하는 설계


OCP를 만족 하는 설계



3) LSP

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

- 자식 클래스는 최소한 자신의 부모 클래스에서 가능한 행위는 수행할 수 있어야한다


4) DIP

- Dependency Inversion Principle : 의존 역전 원칙

- 의존 관계를 맺을 때 변화하기 쉬운 것 또는 자주 변화하는 것보다는 변화하기 어려운 것, 거의 변화가 없는 것에 의존하라는 설계 원칙.

- 정책, 전략, 추상적인 것은 변하기 어려운 것에 해당하고 구체적인 방식, 사물 등은 변하기 쉬운 것으로 구분한다.

- 가령 아이가 장난감을 가지고 논다고 하였을 때, 로봇, 자동차 장난감과 같은 구체적인 사물이 아닌 장난감 이라는 추상적 개념에 의존


5) ISP

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

- 인터페이스를 클라이언트에 특화되도록 분리시키는 설계 원칙.


ISP 원칙에 따른 설계