4 Jun 2020
java 객체지향원칙
SOLID 원칙
객체지향 설계에서 지켜야할 5가지 원칙
1. SRP(Single Responsilbility Principle) 단일 책임 원칙
객체는 단 하나의 책임만 가져야 한다.
- 응집도는 높게, 결합도는 낮게 설계해야 한다.
- 응집도
- 한 프로그램의 요소가 얼마나 뭉쳐있는가
- 결합도
- 프로그램 구성 요소들 사이가 얼마나 의존적인가
2. OCP(Open-Closed Principle) 개방-폐쇄 원칙
기존의 코드를 변경하지 않으면서(closed), 기능을 추가할 수 있도록(open) 설계가 되어야 한다
확장에 대해서는 개방적이고, 수정에 대해서는 폐쇄적이어야 한다.
이를 만족하는 설계로는, 캡슐화를 통해 여러 객체에서 사용하는 같은 기능은 인터페이스에 정의한다.
3. LSP 리스코프 치환 원칙
자식 클래스는 자신의 부모클래스에서 가능한 행위는 수행할 수 있어야 한다
즉, 자식 클래슨는 언제든 부모 클래스의 역할을 대체할 수 있어야 한다.
부모 클래스와 자식 클래스의 행위가 일관 되야 한다.
4. ISP(Interface Segregation Principle), 인터페이스 분리원칙
자신이 사용하지 않는 인터페이스는 구현하지 말아야 한다는 설계 원칙
하나의 거대한 인터페이스 보다는 여러개의 구체적인 인터페이스가 더 좋다 라는 것을 의미한다.
5. DIP(Dependency Inversion Principle), 의존성 역전 원칙
객체들이 서로 정보를 주고 받을 때 의존관계가 형성되는데, 이때 추상성이 낮은 클래스 보다 추상성이 높은 클래스
와 의존 관계를 맺어야 한다는 것을 의미한다.