2016-04-06 5 views
1

私は現在、テイクアウェイ注文システムのクラス図を作成しています。このシステムでは、所有者が顧客情報を更新したり、注文を更新することができます。CustomerクラスまたはOwnerクラスにupdateCustomerInfo()メソッドを置くことはできますか?クラス図にメソッドを配置する場所

+0

オーナーはユースケースの俳優ですか?それとも、本当にあなたのモデル(GUIクラスなど)に必要なクラスですか? – Christophe

+0

所有者は、ユースケース内のアクタです。私は所有者クラスを作っていました。なぜなら、システムを使うことができる他のスタッフもいますが、所有者ができることすべてを行うことはできないからです。クラスダイアグラムでどのメソッドを誰が使用できるかをどのように表示するかはわかりませんでした。私はオーナークラスを外に出すほうがいいと思う? – molly

+0

タイトルが間違っています。あなたはダイアグラムにメソッドを全く入れません。メソッドはクラスのコンパートメントに表示され、SDにはメッセージが表示されます。 –

答えて

0

Customer,Order,OrderItemなどのクラスがある場合は、これらのクラスの内部を非表示にする必要があります。したがって、これらのクラスのそれぞれでupdate()メソッドを使用し、残りの世界がオブジェクトを更新できるようにします。

質問の第2部分には一意の答えはありません。それはあなたのモデルの焦点に非常に依存します:is it a domain model ? Or a design model ?。それは厳密に必要でない限り、あなたが、あなたのクラス図で俳優が含まれませんドメインモデルで

  • (たとえば/オブジェクトを変更し作成したユーザーを参照する監査証跡を追跡するために)
  • でより詳細な設計では、システムに必要なユーザーアカウント管理クラス、またはユーザーインターフェイスクラスモデルをモデル化することが理にかなっています。後者の場合、ユーザーインターフェイスを介して実行できる操作は、Command design patternのクラスまたはアプリケーションメニューのメソッドまたはドメインオブジェクトを参照するproxy GUI objectsのクラスを使用して表されます。
関連する問題