[OOP] 객체지향 설계 5원칙

SOLID 원칙

객체지향 설계 5대원칙.

단일 책임 원칙 (Single Responsibility Principle)

모든 클래스는 각각 하나의 책임만 가져야 한다.

응집도(cohesion)를 높이고 결합도(coupling)를 낮춤

개방 폐쇄 원칙 (Open Closed Principle)

확장에는 열려있고, 수정에는 닫혀있어야 한다.

기존 코드를 변경하지 않고(Closed), 기능을 추가할 수 있도록(Open) 설계 되어야 함

리스코프 치환 원칙 (Liskov Substitution Principle)

자식 클래스는 언제나 자신의 부모 클래스를 대체할 수 있어야 한다.

부모 클래스를 재정의하지 않고 확장만 하여야 함

인터페이스 분리 원칙 (Interface Segregation Principle)

한 클래스는 자신이 사용하지 않는 인터페이스는 구현하지 말아야 한다.

하나의 인터페이스를 여러 개의 구체적인 인터페이스로 만듬

의존 역전 원칙 (Dependency Inversion Principle)

상위 모듈은 하위 모듈에 의존해서는 안된다.

클래스 사이에 의존관계가 존재하되, 구체적인 클래스에 의존하지 않고 추상화 된 클래스에 의존 해야 함