단일 책임 원칙 (SRP)
19 Mar 2022한 클래스는 단 한 가지의 변경 이유만을 가져야 한다.
SRP 위배 예제
그림1의 설계를 보자. 각기 다른 두 어플리케이션이 Rectangle 클래스를 사용한다. 하나는 계산 기하학을 위한 어플리케이션으로, Rectangle을 사용하여 기하학 도형의 수학적 계산을 돕지만 화면에 사각형을 그리지는 않는다. 다른 하나는 본질적으로 그래픽을 위한 어플리케이션이다. 이 어플리케이션도 계산 기하학 과련 동작을 조금 하긴 하지만, 화면에 직사각형을 그리는 것이 주된 기능이다. 따라서 이 설계는 Rectangle 클래스가 두 가지 책임을 지고 있으므로 단일 책임 원칙을 위반한다.
![]() |
|---|
| 그림1 |
SRP 준수 예제
좀 더 나은 설계는 그림2와 같이 2개의 완전히 다른 클래스로 분리해 넣는 것이다.
![]() |
|---|
| 그림2 |

