2012-04-27 6 views
0

私はそれを解決し理解するためのヒントと説明が必要です。それは顧客のためのレジスタです。フォームからクラスへのデータの受け渡しに関するヒントを解決するためのヒント

Contactとの関係を持つContactForm、ContactはAdress、Email、Phoneとの関係があります。

ユーザーがContactFormに情報を入力すると、この情報はAdress、Email、Phoneのクラスに渡され、チェックされます。しかし、私は情報がContactクラスを経由しなければならないと思います。 ContactForm内のContactのオブジェクトを作成し、Contactのコンストラクタにデータを送信しますが、Contactのフィールドで宣言されているAdress、Phone、Emailのコンストラクタでオブジェクト参照を使用していることが予想されます。これはどういう仕組みか分かりません。オブジェクト参照の使用は、多くのデータをContactのコンストラクタに送信しないようにすることでしょうか?

私はまたプロパティを設定して取得するためにプロパティを使用します。ここでも同じことが、オブジェクトの参照を使用すると予想されます。

私は私の指示を理解していれば連絡先は、次のようになりますのコンストラクタ:

Contact(string firstName, string lastname, Adress adr, Phone tel, Email mail) 

それは私が、私はコンストラクタを使用する必要がある場合、フォームからのデータを渡す必要がありますどのように理解していないことをここですこのような?

+0

私は本当にあなたが何を意味するのかを知りません_ "と、Adress、Phone、Emailのコンストラクタ連絡先のフィールド。 "_あなたはいくつかのコードを表示できますか? – CodeCaster

+0

私の記事を読んで理解しましたか?私は、2番目の部分は、オブジェクト参照をコンストラクタに渡す方法を明確に示していると思います。 – Kristof

答えて

0

あなたのコンストラクタでオブジェクト参照を使用する点は、それがより動的であることです。

public void main() 
{ 
    var c = new Contact("europeroad",9999, "USA"); 
} 

public Contact(string address, int zipcode, string country){ 
    this.Address = new Address(address,zipcode,country); 
} 

このオフコースは動作しますが、あなたは新しいフィールドを追加する場合何が起こる:
は、私はこのようなコンストラクタを作ったと仮定しますか?領域、createdon、...
2つのコンストラクタと2つのコンストラクタ呼び出しを調整する必要があります。

public void main() 
{ 
    var a = new Address(); 
    a.Street = "europeroad"; 
    a.Zipcode = 9999; 
    a.Country = "USA"; 
    var c = new Contact(a); 
} 
public Contact(Address address){ 
    this.Address = address; 
} 

のみmainメソッドを(何の署名の変更は必要ありません)を変更することになるここに新しいフィールドを追加する:あなたはそれを行う場合は、オブジェクト参照を示唆したように
は、次のような結果を持っていると思います。

-1

あなたのユースケース、UCおよびシステムシーケンス図から生成するドメインモデルによって異なります。 正直なところ、これは非常に一般的なUCだと言えますし、多くの解決策があります。 Craig Larmans OO分析とデザインブックに基づいて:

UC: ユーザーは連絡先情報を入力します。 システムは情報の妥当性をチェックします。 (私たちは何らかのエラーのためにこのステップを詳述することができます、今私はそれを簡単に説明したいので、詳細はわかりません...) システムはユーザに成功メッセージを表示します。

システムには連絡先コンセプトがあり、連絡先にはアドレス電子メールと電話が含まれています。ドメインモデルには、連絡先、住所、電子メール、電話という4つの異なる概念があります。 UCと把握デザインパターンに従って、UIオブジェクトとBussinesロジックを分離するためにコントローラオブジェクトを実装する必要があります。

コンタクト/ ContactController(ユーザ、アドレス情報、電話番号情報)

結果指標の何らかの接触がコントローラからの情報によって表現することができるので、連絡先オブジェクトを作成することより理解できます。 私の意見では、デザインはどれくらいのデータよりも重要です。そして正直なところ、あなたのオブジェクトがデザイン上の問題を抱えているデータが多いと言うことができます:)

関連する問題