SRP - 단일책임원칙(Single Responseibility principle)
- 클래스(객체)는 단 하나의 책임만 가져야 한다는 원칙
- 즉, 하나의 클래스는 하나의 기능을 담당하여 하나의 책임을 수행하는데 집중되도록 클래스를 따로따로 여러개 설계하라는 원칙이다.
- SRP 원칙을 따름으로써 한 책임의 변경으로부터 다른 책임의 변경으로의 연쇄작용을 극복할 수 있게 된다.
- 프로그램의 유지보수 성을 높이기 위한 설계 기법
OCP - 개방폐쇄원칙(Open/Closed principle)
- 확장에 열려있어야 하며, 수정에는 닫혀있어야 한다.
- 추상화 사용을 통한 관계 구축을 권장한다는 의미
- 다형성과 확장을 가능케 하는 객체지향의 장점을 극대화하는 기본적인 설계 원칙
LSP - 리스코프 치환 원칙(LisKov Substitution principle)
- 하위 클래스의 인스턴스는 상위 클래스의 인스턴스 역할을 하는데 문제가 없어야 한다. 인터페이스와 클래스 관계, 상위 클래스와 하위 클래스 관계를 얼마나 논리적으로 설계했느냐 이다. 하위 클래스가 상위 클래스의 상위클래스의 역할을 대신할 때 논리적으로 맞아 떨어져야한다.
- 아버지와 아들 → 틀림
- 포유류와 고래 → 맞음
ISP - 인터페이스 분리 원칙(interface Segregation principle)