20210712 TIL

김진태·2021년 7월 12일
0

TIL

목록 보기
25/28

SOLID (객체 지향 설계)

두문자약어개념
SSRP단일 책임 원칙 (Single responsibility principle)
한 클래스는 하나의 책임만 가져야 한다.
OOCP개방-폐쇄 원칙 (Open/closed principle)
“소프트웨어 요소는 확장에는 열려 있으나 변경에는 닫혀 있어야 한다.”
LLSP리스코프 치환 원칙 (Liskov substitution principle)
“프로그램의 객체는 프로그램의 정확성을 깨뜨리지 않으면서 하위 타입의 인스턴스로 바꿀 수 있어야 한다.” 계약에 의한 설계를 참고하라.
IISP인터페이스 분리 원칙 (Interface segregation principle)
“특정 클라이언트를 위한 인터페이스 여러 개가 범용 인터페이스 하나보다 낫다.”
DDIP의존관계 역전 원칙 (Dependency inversion principle)
프로그래머는 “추상화에 의존해야지, 구체화에 의존하면 안된다.”[4] 의존성 주입은 이 원칙을 따르는 방법 중 하나다.

(위키백과)

단일 책임 원칙 (Single responsibility principle)

오늘은 SOLID 원칙에서의 단일 책임의 원칙에 대해서 알아볼 예정이다.
단일 책임의 원칙이란 말 그대로 객체는 단 하나의 책임만 가져야 한다는 원칙이다.

  • 클래스가 변경되는 이유는 단 한 개여야 한다.

내겐 아직 익숙하지 않은 느낌이다.
먼저 나는 이걸 왜 나눠야하는지는 생각을 해 본적이 없는 것 같다.

배울 때 부터 기능들을 분리한 채로 배웠기 때문일까?
높은 응집도와 낮은 결합도. 이 말 자체가 이해가 안가니..
정의만 보면 간단하다.

  • 응집도 : 어떤 모듈 내부의 기능적인 집중도를 나타내는 말이다.
  • 결합도 : 어떤 모듈이 다른 모듈에 의존하는 정도를 나타내는 것이다.

당췌 무슨 말인가 이것이.....
그럼 의존성 주입은 좋지 않은 것 아닌가..?
모든 클래스를 기능적으로 분리해서 다형성을 적용하면 되는거 아닌가..?
이 주제에 대해선 아직 내가 많이 부족한 것 같음을 느낀다..
이 원칙에 대해서는 개념만 알아두고 좀 더 내가 성장했을 때 파고들어야 할 것같다.

profile
안녕!

0개의 댓글