로버트 C. 마틴 제시한 5가지 원칙

물론 다 본인이 만든건 아니라고 한다.

LSP 법칙만 봐도 아니라는 것을 알 수 있다.

 

 

개발자라면 무조건 듣게 되는 원칙이라고 생각한다.

나도 많이 들었고 봤다가 잊어버렸다가를 반복하기에 정리하려 한다.

 

개인적으로는 완전히 이해하고 정리하기 쉽지 않았다.

(지금도 완전히 이해했는지 잘모름)

 

실무에서 상황상 적용하기 힘들 수도 있고

적용한 것이 더 안좋은 경우가 있을 수도 있다.

 

하지만 알고 적용하지 않는 것과 몰라서 적용하지 못하는 것은 다른 이야기이다.

 

 

 


위키피디아 내용

 

 

위키피디아에 써있는 한줄 설명이다.

 

 

SRP (Single Reponsibility Principle; 단일 책임 원칙)

한 클래스는 하나의 책임만 가져야 한다.

 

OCP (Open/Cloesed Priciple; 개방-폐쇄 원칙)

소프트웨어 요소는 확장에는 열려있으나 변경에는 닫혀있어야 한다.

 

LSP (Liskov Substitution Principle; 리스코브 치환 법칙)

프로그램의 객체는 프로그램의 정확성을 깨뜨리지 않으면서 하위 타입의 인스턴스로 바꿀 수 있어야 한다.

 

ISP (Interface Segregation Principle; 인터페이스 분리 법칙)

특정 클라이언트를 위한 인터페이스 여러 개가 범용 인터페이스 하나보다 낫다.

 

DIP (Dependency Inversion Principle; 의존 역전 법칙)

프로그래머는 “추상화에 의존해야지, 구체화에 의존하면 안된다.". DI(의존성 주입) 역시 이 원칙을 따르는 방법 중에 하나이다.

 

https://ko.wikipedia.org/wiki/SOLID_(%EA%B0%9D%EC%B2%B4_%EC%A7%80%ED%96%A5_%EC%84%A4%EA%B3%84)

 

SOLID (객체 지향 설계) - 위키백과, 우리 모두의 백과사전

위키백과, 우리 모두의 백과사전.

ko.wikipedia.org

 

 

완벽하게 이해하려고 각각의 원칙들의 위키를 읽다가 더 이해하기 힘들었다.

 

많은 포스팅을 보고 원칙이 전하려는 의미를 파악하는게 더 쉬울 것이라고 생각한다.

 

하지만 포스팅들을 보면 이해하는 것도 가지각색이고 아다르고 어다르게 설명하는 경우도 부지기수이다.

최대한 많이 보며 공통의 내용이 무엇인지 파악해보자.

다른 포스팅 잘못된 포스팅들을 보면서 공부하고 생각하다 보면 이 또한 공부가 된다.

 

 

 

 

 

'SoftwareDesign' 카테고리의 다른 글

OCP  (0) 2020.03.01
SRP  (0) 2020.03.01
3. Observer  (0) 2020.01.19
2. Strategy  (0) 2020.01.07
1. Singleton  (0) 2019.12.25

+ Recent posts