SOLID는 함수와 데이터 구조를 클래스로 배치하는 방법, 그리고 이들 클래스를 서로 결합하는 방법을 설명하는 원칙이다. 최종 목적은 다음과 같은 구조를 만드는 데 있다.변경에 유연하다.이해하기 쉽다.많은 소프트웨어 시스템에 사용될 수 있는 컴포넌트의 기반이 된다.
SRP는 보통 모든 모듈이 단 하나의 일만 해야한다는 의미로 받아들이기 쉬우나 실 의미는 다음과 같다단일 모듈은 변경의 이유가 하나, 오직 아나뿐이어야 한다. 변경의 이유를 좀 더 바꿔말하면 다음과 같이 말할 수도 있다.하나의 모듈은 하나의, 오직 하나의 액터에 대해
OCP에 대한 개념은 다음과 같다.소프트웨어 개체는 확장에 열려 있어야 하고, 변경에는 닫혀 있어야 한다. 즉, 소프트웨어 개체의 행위는 확장할 수 있어야 하지만, 이때 개체를 변경해서는 안 된다. 재무재표를 웹 페이지로 보여주는 시스템이 있다 가정하자. 이 시
LSP에 대한 개념은 다음과 같다.상속 받은 클래스는 기반 클래스를 대체할 수 있어야 한다 LSP로 알려진 바바라 리스코프의 하위 타입은 아래와 같이 정의했다.여기에서 핋요한 것은 다음과 같은 치환 원칙이다. S 타입의 객체 O1 각각에 대응하는 T 타입 객체 O2가
ISP에 대한 개념은 다음과 같다.클라이언트가 자신이 이용하지 않는 메서드에 의존하면 안된다 즉, 하나의 책임만을 가지는 작은 규모의 인터페이스로 분리해야한다. 이 경우 User1은 op2, op3를 사용하지 않음에도 User1의 소스 코드는 이 두 메서드에 의존하게
DIP에 대한 개념은 다음과 같다.추상화에 의존해야 하며, 구체화에 의존하면 안 된다. 즉, 하위의 모듈이 상위 모듈에 정의한 추상 타입(인터페이스)에 의존해야 한다. 의존성 역전 원칙에서 말하는 "유연성이 극대화된 시스템"은 소스코드의 의존성이 추상(abstract