SRP(단일 책임 원칙)
한 클래스는 하나의 책임만 가진다. 변경이 있을때 하나의 클래스나 하나의 지점만 수정할수 있을때 잘지켜진다 할수 있음
OCP(개방-폐쇄 원칙)
확장에는 열려있느나 변경에는 닫혀있다.
LSP(리스코프 치환 원칙)
상위 타입의 객체를 하위 타입으로 바꾸어도 프로그램이 일관되게 동작 되어야 한다.
ex) 자동차 인터페이스에서 엑셀은 앞으로 가게 하는 기능 이를 위반하여 뒤로 가게 하면 LSP원칙을 위반하는것
ISP(인터페이스 분리 원칙)
범용 인터페이스 하나보다 구체적인 특정 인터페이스를 만드는것
자동차 인터페이스 → 정비/ 운전 인터페이스로 쪼개는 것
DIP(의존 관계 역전 원칙)
구체화에 의존하지 않고 추상화에 의존해야한다.