Oop 具有多种行为的用例参与者

Oop 具有多种行为的用例参与者,oop,ooad,Oop,Ooad,我试图想象一个具有多个行为的用例参与者如何在应用程序中实际出现 以以下现实世界中过于简单的情况为例: 环境咨询组织有一名项目经理,负责:创建和管理客户;项目;设施和建筑物、设备和用品。很多只是积垢,但还有很多 拥有一个包含所有隐含行为的ProjectManager类有意义吗?只要看一下用例图,我就可以看到需要20多种方法 与其把所有的鸡蛋放在一个篮子里,不如将责任分成不同的角色,然后将这些角色分配给PM 我的意思是,请容忍我,想象一下: 接口:CustomerRelations 职责:与客户相关

我试图想象一个具有多个行为的用例参与者如何在应用程序中实际出现

以以下现实世界中过于简单的情况为例:

环境咨询组织有一名项目经理,负责:创建和管理客户;项目;设施和建筑物、设备和用品。很多只是积垢,但还有很多

拥有一个包含所有隐含行为的ProjectManager类有意义吗?只要看一下用例图,我就可以看到需要20多种方法


与其把所有的鸡蛋放在一个篮子里,不如将责任分成不同的角色,然后将这些角色分配给PM

我的意思是,请容忍我,想象一下:

接口:CustomerRelations 职责:与客户相关的运营,如创建客户,与客户保持良好关系等

界面:办公管理 职责:获取必要的设备以开展业务,并提供必要的供应以使用这些设备等

界面:项目管理 职责:监督和管理项目等

他们呢

类:ProjectManager实现客户关系、办公管理和项目管理

Class ProjectManager
{
   IOfficeManagerment officeManagement;
   ICustomerRelations  customerRelations;

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


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

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

这样,如果需要,您可以轻松地重新调整职责

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

项目经理有X个职责。客户 关系、办公室管理

接口:客户关系职责:与客户相关的运营,例如从客户处获得反馈,以及其他

接口:办公室管理职责:

类别: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();
    }
}
考虑

项目经理不必知道办公室的内部情况 管理。他把责任委托给其他人。如何得到它 现有资源。他只是想知道可用的资源。
是的,这就是我要找的,谢谢。我在考虑将项目经理分解为子经理,但你的答案显然是更好的方法。干杯