SOLID (객체 지향 설계)
두문자 | 약어 | 개념 |
---|---|---|
S | SRP | 단일 책임 원칙 (Single responsibility principle) 한 클래스는 하나의 책임만 가져야 한다. |
O | OCP | 개방-폐쇄 원칙 (Open/closed principle) “소프트웨어 요소는 확장에는 열려 있으나 변경에는 닫혀 있어야 한다.” |
L | LSP | 리스코프 치환 원칙 (Liskov substitution principle) “프로그램의 객체는 프로그램의 정확성을 깨뜨리지 않으면서 하위 타입의 인스턴스로 바꿀 수 있어야 한다.” 계약에 의한 설계를 참고하라. |
I | ISP | 인터페이스 분리 원칙 (Interface segregation principle) “특정 클라이언트를 위한 인터페이스 여러 개가 범용 인터페이스 하나보다 낫다.” |
D | DIP | 의존관계 역전 원칙 (Dependency inversion principle) 프로그래머는 “추상화에 의존해야지, 구체화에 의존하면 안된다.”[4] 의존성 주입은 이 원칙을 따르는 방법 중 하나다. |
(위키백과)
오늘은 SOLID 원칙에서의 단일 책임의 원칙에 대해서 알아볼 예정이다.
단일 책임의 원칙이란 말 그대로 객체는 단 하나의 책임만 가져야 한다는 원칙이다.
내겐 아직 익숙하지 않은 느낌이다.
먼저 나는 이걸 왜 나눠야하는지는 생각을 해 본적이 없는 것 같다.
배울 때 부터 기능들을 분리한 채로 배웠기 때문일까?
높은 응집도와 낮은 결합도. 이 말 자체가 이해가 안가니..
정의만 보면 간단하다.
당췌 무슨 말인가 이것이.....
그럼 의존성 주입은 좋지 않은 것 아닌가..?
모든 클래스를 기능적으로 분리해서 다형성을 적용하면 되는거 아닌가..?
이 주제에 대해선 아직 내가 많이 부족한 것 같음을 느낀다..
이 원칙에 대해서는 개념만 알아두고 좀 더 내가 성장했을 때 파고들어야 할 것같다.