2011-10-10 2 views
2

CRUD (만들기, 읽기, 업데이트 및 삭제) 작업을 수행하는 YoutubeVideoService 클래스가 있습니다. Create, Read, Update 및 Delete 내보기에서 클래스를 변경하는 네 가지 이유가 있습니다. 이 클래스는 Single Responsibility Principle을 위반합니까?SRP (Single Responceibility Principle) 및 내 서비스 클래스

위반하는 경우 CreateYoutubeVideoService, ReadYoutubeVideoService, UpdateYoutubeVideoServiceDeleteYoutubeVideoService과 같은 네 개의 클래스가 있어야합니다. 많은 수업을하는 것이 과도하지 않습니까?

+0

이 질문을 게시 해 주셔서 감사합니다. 매우 감동적입니다! –

답변

2

당신은 응집력을 고려하지 않고 클래스 레벨에서 극한까지 단일 Reposibility Principle을 사용한다고 생각합니다.

그 경로를 따르는 경우 하나 또는 두 가지 방법으로 많은 클래스를 갖는 것이 정당화 될 수 있으며 결과적으로 하늘에 대한 종속성 수가 증가합니다.

나는 SRP의 정신이 인 것처럼 많이 생각하지만 가능한 한 많이 단순화한다고 생각하지만, 더 이상은이 아닙니다.

+1

왜 이러한 것들이 원리의 정의에 설명되어 있지 않습니까? –

+2

모범 사례에는 엄격한 규칙이 없습니다. 약간의 경험을 통해, 당신은 균형 잡기를 배우고 각 연습의 정확한 양을 사용하여 유지 보수 및 읽기가 용이 한 정말 좋은 코드를 얻을 수 있습니다. 나는 이것을 케이크 굽기와 비교한다. 요리법은 재료를 나열하고 (운 좋게) 어떻게 혼합 할 것인가. 그러나 ** 정말 좋은 케이크를 구우려면 몇 번 시도해야합니다. – Augusto

+1

이것은 원리가 잘못 해석되었음을 의미합니까? –

0

얼마나 걸리나요? 어떤 사람은 2 라인 이상을 가질 이유가 없다고 말할 수 있습니다. 그러나 이것은 분명히 어떤 상황에서는 과잉이다. SRP와 동일합니다. 충분히 충분한시기를 결정해야합니다. CRUD는 동일한 유형의 데이터에서 작동하기 때문에 단일 클래스에 완벽하게 적합한 응집력있는 작업 집합처럼 보입니다.