具有许多行为的用例参与者

Use-case actor with many behaviors

我正在尝试想象具有多种行为的用例参与者如何实际出现在应用程序中。

采用以下真实世界但过于简单化的案例:

一家环境咨询机构有一名项目经理负责:创建和管理客户;项目;设施和建筑物,以及设备和用品。其中很多只是 CRUD,但还有更多。

拥有一个包含所有隐含行为的 ProjectManager class 有意义吗?仅查看用例图,我可以看到需要的 20 多个方法。

Project Management Use-Case

与其将所有的鸡蛋都放在一个篮子里,不如将职责分组到不同的 "roles",然后将这些角色分配给 PM?

我的意思是,请耐心想象一下:

接口:CustomerRelations 职责:与客户相关的操作(例如创建客户,与他们保持良好关系等)

接口:OfficeManagement 职责:获取开展业务所需的设备,并提供必要的供应以供使用等

接口:项目管理 职责:监控和监督项目等

还有他们

Class:ProjectManager 实现了 CustomerRelations、OfficeManagement 和 ProjectManagement。

这样,您可以在需要时轻松地重新调整职责。

我们也可以这样想象。添加到@Alp

的回答

A project manager has X number of responsibilities.(Customer Relations, Office Management)

接口:CustomerRelations 职责:与客户相关的操作(例如,从客户那里获取反馈等)

接口:OfficeManagement 职责:

Class: ProjectManager 可以有 ICustomerRelations、IOfficeManagement 和 IProjectManagement。

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. 项目经理不必知道办公室的内部情况 管理。他将职责委托给其他人。例如。如何获得 可用资源。他只是想知道可用的资源。