5가지 객체지향 설계 원칙
1. 단일 책임 원칙 (Single Responsibility Principle, SRP)
2. 개방 폐쇄 원칙 (Open Closed Principle, OCP)
확장에는 열려있어야 하고 변경에는 닫혀있어야 한다.
3. 리스코프 치환 원칙 (Liskov Substitution Principle, LSP)
- 서브 타입은 언제나 기반 타입으로 교체할 수 있어야 한다.
- 상위 타입의 객체를 하위 타입의 객체로 치환해도 상위 타입을 사용하는 프로그램은 정상적으로 동작해야 한다.
4. 인터페이스 분리 원칙 (Interface Segregation Principle, ISP)
- 인터페이스는 사용자에게 필요한 기능만 제공해야 한다.
5. 의존성 역전 원칙 (Dependency Inversion Principle, DIP)
- 객체가 특정 클래스를 참조해야 하는 상황이 생긴다면, 직접 참조하는 것이 아니라 그 대상의 상위 요소(추상 클래스나 인터페이스)를 참조해야 한다.
- 클라이언트(사용자)가 상속 관계로 이루어진 모듈을 사용할 때, 하위 모듈의 인스턴스를 직접 사용해서는 안된다.
출처: https://inpa.tistory.com/entry/OOP-💠-아주-쉽게-이해하는-DIP-의존-역전-원칙 [Inpa Dev 👨💻:티스토리]