객체지향 5원칙 : 1.SRP 단일 책임 원칙 이렇게 쓰면 '안'된다!
- 프로그래밍/개발새발
- 2019. 6. 19.
길은, 가면 뒤에 있다
소설책처럼 읽는 객체지향 5원칙(SOLID)
1. 단일 책임 원칙 Single Responsibility Principle
-하나의 기능, 하나의 책임
클래스는 하나의 기능(목적,책임)만 가지며, 클래스가 제공하는 서비스는 하나의 책임을 수행하도록 작성되여야 함!
-불 명확한 목적은, 사이트 이펙트를 유발
클래스의 목적이 명확하지 않으면, 구조가 복잡해지고, 수정사항이 불필요하게 넓혀지며, 그에 따른 사이드이펙트도 생길 수 있습니다.
ex)
서버와 통신을 해서 데이터를 받아오는 클래스를 만들면서, 그 데이터를 처리하는 기능까지 넣게 된다면 한 개의 클래스에서 2가지의 책임을 지니게 됩니다.
그렇게 되면, 데이터 처리기능을 수정하게 될 때, 상관없는 통신하는 클래스를 수정하게 되며, 영향을 받는 범위도 커지게 되어 유지보수가 어려워집니다.
그리고 이 클래스가 뭘하는 클래스인지는 모르는 스파게티 소스가 됩니다.
결론
이 원칙은 단순하지만, 실제로 설계에 적용할 땐 쉽지 않습니다.
그 이유는 실무환경은 다양하고, 복잡하며 생각지 못한 변경이 발생하기 때문입니다. 하지만 항상 생각하고 원칙을 지킬려고 행동하다보면 객체지향스러운 고급진 코드가 되지 않을까합니다.
'프로그래밍 > 개발새발' 카테고리의 다른 글
객체지향 5원칙 : 3.리스코브 치환의 원칙, 적용방법!쉬운 예시! (0) | 2019.06.25 |
---|---|
객체지향 5원칙 : 2.OCP 개방폐쇄 원칙, "폐쇄와 확장"은 이렇게! (0) | 2019.06.21 |
윈도우(내pc)에서 웹서버 APM 구축3 - mysql편 (0) | 2019.06.03 |
윈도우(내pc)에서 웹서버 APM 구축2 - Php편 (0) | 2019.05.31 |
윈도우(내pc)에서 웹서버 APM 구축1 - Apache편 (2) | 2019.05.30 |