Study Programming/Design Pattern

[SOLID] 객체지향 SOLID 원칙 (=객체지향 5대 원칙=SOLID원칙)

네모메모 2022. 6. 24. 14:33
반응형

 

 

 

본 포스팅에서 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/

 

- 개발자가 반드시 정복해야 할 객체 지향과 디자인 패턴 - 최범균

 

 

 

 

 

 

 

 

 

 

 

 

 

반응형