2011-12-30 63 views
2

UPDATE:創建域設計模型的最佳方式?

我所尋找的,我應該去seprately創建,而不是在類中添加的getter/setter道具每個班,我的意思是:

所以爲了創建一個訪問中,我應具有以下道具中VISIT

VisitName, Purpose, StartDate, EndDate, HostId, HostName, RequesterId, RequeserName 

或者我應該有這樣的:

VisitName, Purpose, StartDate, EndDate, IPerson Host, IPerson Requester 

結束時更新

我需要建議/反饋,如果我在正確的方向下面是領域模型(項目的一部分不entirly)。

我有一個名爲「訪問」的類訪問模式,我將基本訪問像名稱,目的,開始,結束日期等......在該類中,我也有誰將主持訪問和誰請求訪問。

您如何看待下面的課程?

enter image description here

//aggreate class 
public class Visit 
{ 
    IVisitBasic _visitBasic; 
    IPerson _host; 
    IPerson _requester; 

public IVisitBasic VisitBasic 
{ 
    get { return _visitBasic; } 
    set { _visitBasic = value; } 
} 

public IPerson Host 
{ 
    get { return _host; } 
    set { _host = value; } 
} 

public IPerson Requester 
{ 
    get { return _requester; } 
    set { _requester = value; } 
} 

public Visit(IVisitBasic visitBasic, IPerson host, IPerson requester) 
{ 
    _visitBasic = visitBasic; 
    _host = host; 
    _requester = requester; 
} 

public Visit() { } 

}

+2

更好的問問http://codereview.stackexchange.com。 – 2011-12-30 03:11:34

+0

謝謝你不知道。 – 2011-12-30 03:21:43

+1

是的,現在有很多不同的論壇,我們很快就會有一個爲廚房水槽的好處。 – eaglestorm 2011-12-30 03:26:16

回答

0

它看起來不錯的開始,但我不會做硬性的域模型,直到你其實已經開始編碼和測試初始域模型作爲您可能會發現事情並不像預期的那樣工作,或者有些事情是你錯過了的,或者需求發生了變化等等。

從快速瀏覽的其他要點。

  • VisitBasic的目的是什麼?它應該是一個抽象基類還是名稱更清晰?
  • 您可能希望讓主持人進入自己的班級,可能有與人員類別無關的信息,因此可能是人員的子類別。但是如上所述,迭代地開發它可能會更好。也可能是請求者,但可能不太可能。

更新響應: 現在的標準設計的大多數事情是增加一個服務層,即VisitService與createVisit方法,並訪問對象的屬性,而無需任何業務應該只是鏈接到主機,並請求他們的邏輯。 (希望能回答你的問題?)

+0

請看看我的問題,我剛剛更新.... – 2011-12-30 03:28:55

+0

所以你會把業務邏輯放在哪裏?在模型中? – 2011-12-30 04:29:20

+0

您基本上將應用程序分爲多個層,即數據訪問層,模型層,服務層,gui層等。但真正取決於你正在構建的應用程序的類型,應該有一些標準,例如微軟擁有模式和實踐庫,並且有大量的設計模式。 – eaglestorm 2011-12-30 05:34:20