SOLID 원칙
- 객체지향 설계 원칙
- SRP, OCP, LSP, ISP, DIP 5가지 원칙
1. SRP(Single Responsibility) 단일 책임 원칙
- 클래스는 단 한개의 책임을 가져야 함
- 클래스를 변경하는 이유는 단 하나여야 함
2. OCP(Open-Closed) 개방-폐쇄 원칙
- 확장에는 열려있어야 하고, 변경에는 닫혀있어야 함
- 기존의 코드를 변경하지 않고 기능을 수정하거나 추가할 수 있도록 설계해야 함
3. LSP(Liskov Substutution) 리스코프 치환 원칙
- 하위 타입 객체는 상위 타입 객체에서 가능한 행위를 수행할 수 있어야 함
- 상속 관계에서는 꼭 일반화 단계 IS-A가 성립해야 한다는 의미
4. ISP(Interface Segregation) 인터페이스 분리 원칙
- 클라이언트는 자신이 사용하는 메소드에만 의존해야 한다는 원칙
- 한 클래스는 자신이 사용하지 않는 인터페이스는 구현하지 않아야 함
- 인터페이스는 해당 인터페이스를 사용하는 클라이언트를 기준으로 잘게 분리되어야 함
5. DIP(Dependency Inversion) 의존 역전 원칙
- 의존 관계를 맺을 때, 변하기 쉬운 것(구체적인 것) 보다는 변하기 어려운 것(추상적인 것)에 의존해야 함
- 고수준 모듈은 저수준 모듈의 구현에 의존해서는 안됨
- 저수준 모듈이 고수준 모듈에서 정의한 추상 타입에 의존해야 함
- 저수준 모듈이 변경되어도 고수준 모듈은 변경이 필요없는 형태가 이상적
'이론 공부' 카테고리의 다른 글
python 이론 정리 (0) | 2023.03.30 |
---|---|
기타 개념 정리 (0) | 2023.03.29 |
Java의 Call By Value, Call By Reference (0) | 2023.03.28 |
캐시 (Cache) / 캐싱 (Caching) (0) | 2023.03.28 |
AWS, Docker 개념 (0) | 2023.03.28 |