SOLID
란 로버트 마틴(밥아저씨는 어디든 등장하네)이 2000년대 초반에 명명한 객체지향 프로그래밍 및 설계의 다섯가지 기본 원칙을 마이클 페더스란 사람이 소개했다고 한다.
프로그래머가 시간이 지나도 유지보수와 확장이 쉬운 시스템을 만들고자 할때 이 원칙들을 함께 적용할 수 있다. 이 원칙들은 애자일 소프트웨어 개발과 적응적 소프트웨어 개발의 전반적 전략의 일부다.
Full Name | Concept | |
---|---|---|
S | Single Responsibility Principle | |
(SRP) | 한 클래스는 하나의 책임만 가져야 한다. → 변화의 이유는 한가지여야 한다 라는게 더 정확한 표현인것 같다. | |
O | Open-Closed Principle | |
(OCP) | 소프트웨어 요소는 확장에는 열려있고 변경에는 닫혀 있어야 한다. | |
L | Liskov Substitution Principle | |
(LSP) | 프로그램의 객체는 정확성을 깨뜨리지 않으면서 하위 타입의 인스턴스로 바꿀 수 있어야 한다. | |
I | Interface Segregation Principle | |
(ISP) | 특정 클라이언트를 위한 인터페이스 여러 개가 범용 인터페이스 하나보다 낫다. | |
D | Dependency Inversion Principle | |
(DIP) | 프로그래머는 “추상화에 의존해야하고 구체화에 의존하면 안된다.” 의존성 주입은 이 원칙을 따르는 방법 중 하나이다. |
SOLID (객체 지향 설계) - 위키백과, 우리 모두의 백과사전
리스코프 치환 원칙 - 위키백과, 우리 모두의 백과사전