7장 SRP: 단일책임 원칙

들어가며

 

사람들이 흔히 알고있는 의미는 "하나의 클래스는 하나의 책임만을 가지고 설계가되어야한다." 이다.

하지만 하나의 책임(일)을 가지는것은 함수 또는 메서드이다.

결론적으로 SRP의 정확한 의미는 "하나의 모듈(함수와 데이터로 응집된 집합)은 하나의, 오직 하나의 액터에 대해서만 책임져야한다." 이다.

 

 

 

SRP를 위반하는 사례

 

1 : 우발적 중복

하나의 클래스가 여러메서드를 포함하는데 이 여러 메서드를 서로다른 액터를 책임지는경우 SRP를 위반한다.

-> 하나의 액터에 의해 한 메서드를 변경하게될 경우 다른 액터에게도 영향이 가기때문.

결국 SRP는 서로 다른 액터가 의존하는 코드를 서로 분리하라고 말함.

 

2 : 병합

마찬가지로 하나의 클래스의 여러 메서드가 서로다른 액터를 책임지는 경우 각각의 개발자가 해당 클래스의 메서드를 변경시 같은 내용을 변경하게되어 충돌이 일어난다.

결국 서로 다른 액터를 뒷밤침하는 코드를 서로 분리해야한다.

 

 

 

해결책

 

단순히 메서드를 모두 각기 다른 클래스로 분리시키거나 퍼사드패턴을 적용하는것으로 단일책임 원칙의 위반을 회피할 수 있다.

'📚 Book > Clean Architecture' 카테고리의 다른 글

10장 ISP: 인터페이스 분리 원칙  (0) 2020.02.19
8장 OCP: 개방-폐쇄 원칙  (0) 2020.02.19
5장 객체 지향 프로그래밍  (0) 2020.02.17
6장 함수형 프로그래밍  (0) 2020.02.17
4장 구조적 프로그래밍  (0) 2020.02.17