OOP 원칙 (SOLID)
OOP 원칙
-
SRP : 단일 책임 원칙
객체는 오직 하나의 책임만을 가져야 함
여러개의 책임을 가지게 되면 클래스의 목적이 모호해지고 하나의 수정을 하는데도 영향의 범위가 커져 유지보수가 힘들어짐. 즉 스파게티 코드화 됨
-
OCP : 개방-폐쇄 원칙
-
객체는 확장을 허용하고 스스로 변경은 피해야 함
자식 클래스를 만며 클래스의 확장은 허용
클래스 자체를 변경하는 것은 피함
-
LSP : 리스코프 치환 원칙
자식 클래스는 언제나 자신의 부모 클래스를 대체할 수 있어야 함
상속의 본질
지키지 않으면 부모 클래스의 의미가 변해서 is-a 관계가 망가져 다형성 지킬 수 없음
-
ISP : 인터페이스 분리 원칙
클라이언트에서 사용하지 않는 메서드를 사용해서는 안 됨
인터페이스를 작게 나누어 만들어야 함
두 개의 기능을 받는 하나의 인터페이스는 하나의 기능을 받는 하나의 인터페이스보다 리소스가 줄여짐.
-
DIP : 의존성 역전 원칙
추상성이 높고 안정적인 고수준의 클래스는 구체적이고 불안정한 저수준의 클래스에 의존해서는 안 됨
객체지향의 인터페이스를 통해 이 원칙을 준수할 수 있음
인터페이스를 구현한 클래스는 클라이언트에 어떤 변경도 없이 언제든 나중에 교체될 수 있음