2014-06-16 3 views
0

이것은 매우 기본적인 질문 일 뿐이지 만 바로 대답을 찾을 수는 없습니다. 잠시 생각해 보았지만 여전히 모범 사례가 무엇인지 파악하지 못했습니다. 부모 - 자식 관계 있음, 예 :. 부서/직원은 다음과 같은 조치를 취해야합니까?하위 엔티티에 대한 별도의 컨트롤러

DepartmentController -> addEmpoyee(deptId) 
DepartmentController -> editEmpoyee(empId) 
DepartmentController -> employees(deptId) 

대신 직원 작업을위한 별도의 컨트롤러를 만드시겠습니까? 는에는 EmployeeController -> 추가 (deptId는) 는에는 EmployeeController -> 편집 (EMPID) 에는 EmployeeController -> 목록 (deptId)

두 번째 접근 방식은 나에게 의미가 있지만, 첫 번째는 직원이 부서의 자식 엔티티뿐만 아니라 논리적 인 것 같다 ...

답변

1

DepartmentCrudController (인덱스, 표시, 생성, 삭제, 새로 작성, 편집) 해당 메소드를 수집합니다.

실제로 CRUD는 입니다. ONE은 자체 책임이므로 단일 책임 원칙을 어 기지 않습니다.

그러나 일부 비즈니스 로직 (작업 중심 UI)이 포함되어있는 경우 컨트롤러에서 호출 된 관련 명령 (예 : CQRS)은 변경에 덜 민감하기 때문에 분리해야합니다. 너의 어플리케이션.

그러나 간단한 CRUD의 경우 하나의 서비스 계층 클래스로 충분합니다.

귀하의 컨트롤러는 단순한 겸손한 객체 인 귀하의 유스 케이스 (서비스 계층)에 위임해야합니다. 이는 모든 비즈니스 로직이없는 것을 의미합니다.

+0

감사합니다. 그래서 나는 분리 된 컨트롤러를 사용할 것입니다. 이것은 때로는 상위 컨트롤러에 모든 관련 로직을 던지기가 더 쉬워 보이지만 이것은 나에게 의미가 있습니다 ... – GrumpyHat

+0

@GrumpyHat 아니요. 반대의 의미는 없습니다. 하나의 컨트롤러 만 유지하십시오. CRUD는 단순한 겸손한 대상을 목표로하기 때문에 특히 컨트롤러에서 한 가지 책임을 나타냅니다. – Mik378

+0

맞아요.하지만이 경우 컨트롤러가 상당히 커질 수 있습니다. 추가, 수정, 삭제, 검색 (색인), 부서에 대한보기 및 다른 양식을 사용하는 직원을위한보기 (웹 앱)입니다. 그 위에 부모와 자식 엔티티에 대한 더 많은 커스텀 메소드가있을 것입니다 ... – GrumpyHat

관련 문제