2012-04-27 17 views
0

我有一個任務,我需要一些提示和解釋來解決和理解它。這是關於客戶註冊。提示解決關於將數據從表單傳遞到類的任務

與聯繫人有關聯的聯繫人窗體,聯繫人與地址,電子郵件和電話有關係。

用戶在ContactForm中輸入信息,然後應該在地址,電子郵件和電話中傳遞和檢查此信息。但我想這些信息必須通過聯繫人類。然後我在ContactForm中創建一個Contact對象,並將數據發送給Contact的構造函數,但預計在Contact的域中聲明的地址,電話和電子郵件的構造函數中使用對象引用。這我不明白它是如何工作的?也許使用對象引用是爲了避免將大量數據發送給Contact的構造函數?

我也將使用屬性來設置和獲取信息,同樣的事情在這裏,我期望使用對象的引用。

用於聯絡的構造應該是這樣的,如果我沒有理解我的說明:

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

它在這裏,我不知道如何從表單中的數據應該傳遞時,我需要使用一個構造函數喜歡這個?

+0

我真的不明白你的意思_「在地址,電話和電子郵件的構造函數中使用對象引用聲明聯繫人的字段。「_你能顯示一些代碼嗎? – CodeCaster 2012-04-27 07:58:47

+0

您是否閱讀並理解了我的文章?我認爲第二部分清楚地說明了如何將對象引用傳遞給你的構造函數。 – Kristof 2012-04-27 11:07:57

回答

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); 
} 

這偏離航向的工作,但如果添加了新的領域會發生什麼? region,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; 
} 

添加一個新的領域在這裏只會導致改變的主要方法(不需要簽名的變化)。

-1

這取決於你的使用案例,你從UC生成的領域模型和系統時序圖。 老實說,我可以說這是很常見的UC並且有很多解決方案。基於Craig Larmans OO分析和設計書:

UC: 用戶輸入聯繫信息。 系統檢查信息的有效性。 (我們可以詳細說明這一步的任何錯誤,現在我想簡單地解釋一下,所以我不會詳細說明它...) 系統向用戶顯示成功消息。

據他們說,系統有聯繫人的概念和聯繫人包含地址電子郵件和電話。領域模型有四個不同的概念,即聯繫人,地址,電子郵件和電話。 根據UC和掌握設計模式,您需要實現控制器對象來分離UI和Bussines邏輯。

聯繫/有些種類結果指示的ContactController(用戶,地址信息,電話信息)

由於接觸可以通過從控制器來的信息來表示的,建立聯繫目的是更容易理解。 這是我的看法,設計比它所消耗的數據更重要。老實說,我可以說,如果你的對象comsumes這麼多的數據,你有設計問題:)

相關問題