SOLID 원칙
Date:
SOLID 원칙
객체 지향 설계 원칙
SOLID라고 부르는 5가지 설계 원칙이 존재한다.
-
SRP(Single Responsibility) - 단일 책임 원칙
클래스는 단 한 개의 책임을 가져야 한다.
클래스를 변경하는 이유는 단 한 개 여야 한다.
이를 지키지 않으면, 한 책임의 변경에 의해 다른 책임과 관련된 코드에 영향이 갈 수 있다. -
OCP(Open-Closed) - 개방-폐쇄 원칙
확장에는 열려 있어야 하고, 변경에는 닫혀 있어야 한다.
기능을 변경하거나 확장할 수 있으면서, 그 기능을 사용하는 코드는 수정하지 않는다.
이를 지키지 않으면, 다음과 같은 현상이 일어난다.
(i) instanceof와 같은 연산자를 사용하거나 다운 캐스팅이 일어난다.
(ii) 비슷한 if-else문이 반복된다. -
LSP(Liskov Substitution) - 리스코프 치환 원칙
상위 타입의 객체를 하위 타입의 객체로 치환해도, 상위 타입을 사용하는 프로그램은 정상적으로 동작해야 한다.
상속 관계가 아닌 클래스들을 상속 관계로 설정하면, 이 원칙이 위배된다.
이 원칙이 깨지면 instanceof 연산을 사용하게 되는 현상이 일어난다. -
ISP(Interface Segregation) - 인터페이스 분리 원칙
인터페이스는 그 인터페이스를 사용하는 클라이언트를 기준으로 분리해야 한다.
각 클라이언트가 필요로 하는 인터페이스들을 분리함으로써, 각 클라이언트가 사용하지 않는 인터페이스에 변경이 발생하더라도 영향을 받지 않도록 만들어야 한다. -
DIP(Dependency Inversion) - 의존 역전 원칙
고수준 모듈은 저수준 모듈의 구현에 의존해서는 안된다.
저수준 모듈이 고수준 모듈에서 정의한 추상 타입에 의존해야 한다.
즉, 저수준 모듈이 변경돼도 고수준 모듈은 변경할 필요가 없는 것이다.
Spring_CORE_BASIC_1 을 참고 하자
댓글