2011-12-30 68 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