※ SOLID 원칙이란?
: 객체지향 설계원칙의 5가지
1. SRP(Single Responsibility) 단일 책임 원칙
- 클래스는 단 한개의 책임을 가져야함
- 클래스를 변경하는 이유는 단 하나 이어야함.
- 지키지 않을 경우에는, 다른 책임과 관련된 코드에 영향을 줌. -> 유지보수에 비효율
2. OCP(Open-Closed) 개방 폐쇄 원칙
- 기존 코드를 변경하지 않고 수정하거나 추가할 수 있도록 설계해야함.
- 줄줄이 고치게 될 경우에는 객체지향 프로그래밍의 장점인 유연성,재사용성, 유지보수성을 잃어버림.
3. LSP (Liskov Substitution) 리스코프 치환 원칙
- 하위 타입 객체는 상위 타입 객체에서 가능한 행위를 수행할 수 있어야함.
- 상속관계에서는 일반화 관계가 성립되어야함
4. ISP (Interface Segregation) 인터페이스 분리 원칙
- 클라이언트는 자신이 사용하는 메소드에만 의존해야함.
- 클래스는 자신이 사용하지 않는 인터페이스는 구현하지 않아야함.
5. DIP (Dependency Inversion) 의존 역전 원칙
- 변하기 쉬운 것 보다는 변하기 어려운 것에 의존해야함.
- 구체화된 클래스에 의존하기 보단 추상 클래스나 인터페이스에 의존해야함.