Java-Chip4 / StudyingRecord

강의 내용 정리📝
6 stars 2 forks source link

SRP 단일 책임 원칙과 변경 연쇄작용 #62

Open songks0922 opened 1 year ago

songks0922 commented 1 year ago

SRP 원칙에서 클래스 간에 연결 때문에 변경사항 하나로 인해 많은 클래스를 변경하게 되는 경우는 SRP 원칙을 지키지 않은 것이라고 배웠습니다. 지금 문제는 변경 사항 하나 때문에 여러 클래스를 변경해야 되는 것이 문제인 것인데 그렇다면 클래스를 통합하여 하나의 클래스에서 처리를 한다면 결국 변경 사항 하나로 인해 하나의 클래스가 변경되는 것이니 이런 경우를 단일 책임 원칙을 지켰다고 볼 수 있을까요?

rkdtmddnjs97 commented 1 year ago

단일 책임 원칙(SRP)에서 중요한 점은 하나의 객체는 하나의 책임만 가져야 하는 것인데 하나의 클래스에서 여러가지 기능을 해결한다고 하면 단일 책임 원칙에 위배되는 설계 아닌가요? 애초에 클래스 간 연결에서 변경사항 때문에 많은 클래스가 변경되는 경우는 변경되는 클래스들이 어떤 책임에 대한 캡슐화가 완전이 진행되지 않았기 때문에 변경되는 것 같습니다. 하나의 클래스에서 통합하는 것 보단 완전히 캡슐화된 클래스로 설계하는게 좋을 것 같습니다

rkdtmddnjs97 commented 1 year ago

예제를 주시면 더 좋을 것 같습니다!

songks0922 commented 1 year ago

책임의 범위를 엄청 크게 잡아버리고 이걸 하나의 객체에서 처리하게 한다면 맞는걸까요..? SRP에서 책임의 범위라는 규정이 명확하지가 않아서 헷갈리는데 말씀 읽어보니까 그런거 같기도 하네요. 애초에 설계 자체가 잘못되었네요. 일부러 꼬아서 해보려니 적절한 예시 작성도 힘들군요ㅎㅎ 충분히 설득력 있는 답변이었습니다.