2017-11-13 6 views
0

여러 동작을 가진 유스 케이스 액터가 실제로 애플리케이션에서 어떻게 나타나는지 상상해 봅니다.많은 동작을하는 유스 케이스 액터

가 가지고 현실 세계하지만 과도하게 단순화 경우 다음

환경 적 컨설팅 조직을 담당하는 프로젝트 매니저가 있습니다 생성하고 클라이언트를 관리하는; 프로젝트; 시설 및 건물, 장비 및 용품. 이 중 많은 부분이 CRUD 일 뿐이지 만 조금 더 많습니다.

모든 동작이 암시 된 ProjectManager 클래스를 갖는 것이 합리적입니까? 유스 케이스 다이어그램을 보면 필요한 20 가지 이상의 메소드를 볼 수 있습니다.

Project Management Use-Case

답변

1

대신 한 바구니에 모든 계란을 넣는, 왜 다른 "역할"에 그룹의 책임과는 오후에이 역할을 할당하지?

내가 무슨 뜻으로, 나와 함께 곰과 상상하십시오된다

인터페이스 : CustomerRelations 의 책임 : 고객 관련 OPS (예 : 고객을 만들고, 그들 등과 좋은 관계 유지)

인터페이스 : OfficeManagement를 책임 : 사업을 수행하는 데 필요한 장비를 구입하고 사용하기 위해 필요한 물품을 확보하십시오.

인터페이스 : ProjectManagement 책임 : 프로젝트 모니터링 및 감독

그리고 그들

클래스 : ProjectManager는 CustomerRelations, OfficeManagement 및 ProjectManagement를 구현합니다.

이렇게하면 필요한 경우 주위를 쉽게 다시 셔플 할 수 있습니다.

+0

예, 이것이 내가 찾던 고맙습니다. 프로젝트 관리자를 하위 관리자로 나누는 것에 대해 생각해 보았습니다. 그러나 귀하의 대답은 분명 더 나은 접근 방법입니다. 건배, – Mongo

0

우리는 또한 이렇게 상상할 수 있습니다. @Alp

에서 답변을 추가하면 프로젝트 관리자는 책임의 X 번호가 (고객에게 관계, 사무실 관리)

인터페이스 :. CustomerRelations 책임 : 고객 관련 작전 고객으로부터 (예 : GET-피드백을 OfficeManagement 책임 :

클래스 : ProjectManager이 ICustomerRelations을 가질 수 IOfficeManagement 및 IProjectManag

인터페이스) 및 기타 달성. 사무실 관리 얼마나

Class ProjectManager 
{ 
    IOfficeManagerment officeManagement; 
    ICustomerRelations customerRelations; 

    public ProjectManager(IOfficeManagerment management, ICustomerRelations) 
    { 
      \\Inject your dependencies 
    } 


    public void GetFeedBack() 
    { 
     customerRelations.GetFeedback(); 
    } 

    public void GetEquipements() 
    { 
     officeManagement.GetAvailableEquipments(); 
    } 
} 

고려

  1. 프로젝트 매니저는 내부를 알 필요가 없습니다. 그는 다른 사람에게 그 의무를 위임합니다. 예. 사용 가능한 리소스를 얻는 방법. 그는 단지 사용 가능한 리소스를 알고 싶습니다.