2017-11-13 1 views
0

私は、複数の振る舞いを持つユースケースアクタが実際にアプリケーションにどのように現れているか想像しています。多くの振る舞いを持つユースケースアクタ

は、次の現実の世界が、単純化のケースを取る:

環境コンサルティング組織が担当プロジェクトマネージャーがあります。クライアントの作成と管理を、プロジェクト;施設および建物、設備および備品を含む。これの多くはCRUDですが、もう少しです。

すべての動作が暗黙のうちにProjectManagerクラスを持つのは意味がありますか?ユースケースの図を見るだけで、20種類以上のメソッドが必要になることがあります。

Project Management Use-Case

答えて

1

代わりに一つのかごにすべての卵を置くこと、なぜ異なる「役割」のグループの責任とは、PMにこれらの役割を割り当てませんか?私はそれによって何を意味

され、私と一緒に負担と想像してください。

インタフェース:CustomerRelations 責任:顧客関連オプス(例えば、それらなどとの良好な関係を維持し、顧客を作成する)

インターフェース:OfficeManagement 責任:などの事業を行うために必要な機器を取得し、それらを使用するために必要な供給を提供

インタフェース:プロジェクトマネジメント 責任:監視と監督のプロジェクトなど

そしてそれら

クラス:ProjectManagerはCustomerRelations、OfficeManagementおよびプロジェクトマネジメントを実装しています。

このようにして、必要に応じて簡単に責任を再シャッフルできます。

+0

はい、これは私が探していたものです。ありがとうございます。 私はプロジェクトマネージャをサブマネージャーに分割することを考えていましたが、あなたの答えは明らかに優れたアプローチです。 乾杯、 – Mongo

0

このようにも想像することができます。プロジェクトマネージャは責任のX番号を持っている@Alp

から

に答えるために追加する(顧客 リレーションズ、オフィス管理)

インタフェース:CustomerRelations責任:顧客関連OPS顧客から(例えば取得フィードバックOfficeManagement責任:

クラス:ProjectManagerはICustomerRelationsを持つことができ、IOfficeManagementとIProjectManag

インタフェース)、および他のement。

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. プロジェクト・マネージャは、オフィスが 管理されているか内部を知る必要はありません。彼は他の人に義務を委任する。例えば。 利用可能なリソースを取得する方法。彼は利用可能なリソースを知りたいだけです。
関連する問題