프로그래밍 언어 공통/OOP
OOP 설계 원칙 SOLID
Raccoon2125
2022. 5. 29. 02:54
1. SRP; Single Responsibility Principle : 단일 책임의 원칙
- 하나의 기능을 수행하는 함수와 같이 클래스도 하나의 책임을 가지고 있어야 한다.
- 다른 클래스와의 관계성이 낮으므로 버그 대처가 쉬워진다.
→ 응집도 High, 결합도 Low
2. OCP; Open-Closed Principle : 개방 폐쇄의 원칙
- (close) 상위 클래스의 메서드는 내용이 변경되지 않도록 공통적인 기능을 가져야 하고 수정을 최소화해야 한다.
- (open) 하위 클래스의 메서드는 상위 클래스의 메서드 기능에서 확장될 수 있어야 한다.
3. LSP; Liskov Substitution Principle : 리스코프 대체의 원칙
- 기반 클래스는 파생 클래스로 대체할 수 있다.
4. ISP; Interface Segregation Principle : 인터페이스 분리의 원칙
- 하나의 범용 인터페이스보다 특화된 여러 인터페이스를 구성하는 것이 좋다.
→ 의존성 약화 >> 추가/수정/제거 최소화
5. DIP; Dependency Inversion Principle : 의존관계 역전의 원칙
- 의존관계 표현 시 하위클래스가 아닌 상위클래스에 의존해야 한다.
- 구체화된 클래스(하위)로부터의 의존성을 줄임.