2016-04-05 34 views
3

メッセージの方向は、(シーケンス図のアクタの)クラスのメソッドをどのように決定できますか?私はメッセージを送る俳優がその方法を持っていると言うでしょう。私は正しいですか?シーケンス図からのUMLクラスメソッド

enter image description here

そして

enter image description here

であることのために、クラスIが正しいか、それは他の方法で回避されていますか?

+0

私はあなたが持っているログインシステムの種類がわからないんだけど、通常は、ログイン資格情報を使用してパスワードを入れ。それは2つではなく、1つのステップです。 –

+0

@ cricket_007ポイントを獲得しました。そのとおり。そのメッセージをもっと引き出すために私はそれをしました。 EnterLogin()とEnterPassword()はCOMPUTERによって実装されているので、LOGINとPASSWORDの両方のプロパティがOKですか? –

+0

Personエンティティは、自分のパスワードを保存してはならず、ログインの識別子のみがその電子メールまたはユーザー名となります。また、 'Enter'プレフィックスは非常に冗長で、' login(id、password) 'のようなパラメータでメソッドを実装するだけで完全に不要です。クラス図がシーケンス図と必ずしも一致するとは限りません。ユーザーにログイン画面が表示され、パスワードが入力されます。コンピュータは 'AskPassword'機能でユーザーをスパムしません。また、検証が正しくないと、エラー・メッセージの応答が欠落しています。 –

答えて

6

「メッセージを送信する」は、ほとんどの場合「メソッドを呼び出す」と同じです。つまり、アクタがコンピュータにメッセージを送信すると、コンピュータはメソッドを理解し、メソッドを実装する必要があります。

違いがありますが(本書の1を参照)、本質的にオブジェクトに「メッセージを送信」し​​、オブジェクトはその処理方法を決定します。ほとんどの場合、適切な方法が実装されています。

質問に答えるには、メッセージ送信の受信者は送信者ではなく、送信者のための方法を実装する必要があります。

おそらく擬似コードもそれを説明することができます

class A { 
    function hello() { 
     b.someMessage(); 
     c.otherMessage(); 
    } 
} 

class B { 
    function someMessage() { 
     this.selfMessage(); 
    } 
} 

enter image description here

+0

恐ろしい!!!ピーターありがとう。 –

+0

私は1つのことを忘れました。私のダイアグラムでは、LOGINと呼ばれるプロパティがあるとします。あなたがLOGINはPERSONのプロパティになり、EnterLogin()はCOMPUTERの右のメトですか? –

+0

No.ログインはシステムクラス名認証の方法です。それがユーザーの方法だったら、どうしてログインする必要がありますか? –

関連する問題