SOLID란?
클린코드로 유명한 로버트 마틴이 좋은 객체 지향 설계의 5가지 원칙을 정리한 것.
SOLID의 5가지 내용
- SRP : 단일 책임 원칙
- OCP : 개방-폐쇄 원칙
- LSP : 리스코프 치환 원칙
- ISP : 인터페이스 분리 원칙
- DIP : 의존관계 역전 원칙
하나하나 뜯어 보자!
SRP (single responsibility principle)
- 한 클래스는 하나의 책임만을 가져야 한다.
- 쉽게 말해 변화가 있을 때 최대한 적은 수정을 할 수 있어야 한다.
OCP (Open/Closed principle)
- 소프트웨어 요소는 확장에는 열려 있으나 변경에는 닫혀 있어야 한다.
- 다형성을 최대한 활용해야 함.
LSP (Liskov substitution principle)
- 프로그램의 속성을 변경하지 않고 객체를 치환할 수 있어야 한다.
ISP (Interface segregation principle)
- 범용 인터페이스 하나보다는 세부적인 인터페이스 여러개가 있어야 한다.
DIP (Dependency inversion principle)
- 상위 모듈은 하위 모듈에 의존해서는 안된다. 상위 모듈과 하위 모듈 모두 추상화에 의존해야 한다.
- 추상화는 세부 사항에 의존해서는 안된다. 세부사항이 추상화에 의존해야 한다.
'Study > Design Pattern' 카테고리의 다른 글
[OOP] 객체지향 설계 5원칙 SOLID (SRP, OCP) (0) | 2022.08.13 |
---|---|
[Design Pattern] 어댑터 패턴(Adapter Pattern) (0) | 2021.08.26 |
[Design Pattern] 싱글톤 패턴(Singleton Pattern) with Golang (0) | 2021.08.26 |