본 포스팅에서 Design Pattern이라고 매번 쓰기 귀찮아 'DP'로 일컫으려고 합니다.
객체지향 SOLID 원칙
- [대략설명] 객체 지향 개발 시 가급적 지켜야할 5개 원칙의 약자 모음
- [상세설명] SOLID 원칙들은 소프트웨어 작업에서 프로그래머가 소스 코드가 읽기 쉽고 확장하기 쉽게 될 때까지 소프트웨어 소스 코드를 리팩터링하여 코드 냄새를 제거하기 위해 적용할 수 있는 지침이다.
- [종류] 이 원칙들은 애자일 소프트웨어 개발과 적응적 소프트웨어 개발의 전반적 전략의 일부다.
- [배경] 로버트 마틴[1][2]이 2000년대 초반[3]에 명명한 객체 지향 프로그래밍 및 설계의 다섯 가지 기본 원칙
SOLID 원칙 종류
SRP | 단일 책임 원칙 (Single responsibility principle)한 클래스는 하나의 책임만 가져야 한다. |
OCP | 개방-폐쇄 원칙 (Open/closed principle)“소프트웨어 요소는 확장에는 열려 있으나 변경에는 닫혀 있어야 한다.” |
LSP | 리스코프 치환 원칙 (Liskov substitution principle)“프로그램의 객체는 프로그램의 정확성을 깨뜨리지 않으면서 하위 타입의 인스턴스로 바꿀 수 있어야 한다.” 계약에 의한 설계를 참고하라. |
ISP | 인터페이스 분리 원칙 (Interface segregation principle)“특정 클라이언트를 위한 인터페이스 여러 개가 범용 인터페이스 하나보다 낫다.”[4] |
DIP | 의존관계 역전 원칙 (Dependency inversion principle)프로그래머는 “추상화에 의존해야지, 구체화에 의존하면 안된다.”[4] 의존성 주입은 이 원칙을 따르는 방법 중 하나다. |
SOLID
1. SRP : Single Responsibility Principle = 단일 책임 원칙
" 하나의 클래스는 하나의 책임을 가지고 책임을 캡슐화해야 한다. " |
- 다른 말로 "어떤 변화에 의해 클래스를 변경해야 하는 이유는 오직 하나뿐이어야 함"을 의미
ex) 데이터를 읽어 오는 책임의 기능이 변경될 때 데이터를 보여주는 책임은 변하면 안 됩니다.
- '책임'이라는 기준을 세우기 위해 (단순히 해당 클래스만이 아니라) 시야를 넓혀 액터를 정의하는 것이 중요
[출처]
- 위키 : https://ko.wikipedia.org/wiki/SOLID_(%EA%B0%9D%EC%B2%B4_%EC%A7%80%ED%96%A5_%EC%84%A4%EA%B3%84)
- SRP
-> https://steady-coding.tistory.com/370
- https://www.nextree.co.kr/p6960/
- 개발자가 반드시 정복해야 할 객체 지향과 디자인 패턴 - 최범균
-
-