2

更新:

我正在寻找的是我应该分别创建每个类而不是在类中添加 getter/setter 属性,我的意思是:

所以为了创建一个访问,我应该在 VISIT 中有以下道具

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

或者我应该有这个:

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

结束更新

如果我要朝着正确的方向前进,我需要建议/反馈,下面是域模型(不是整个项目的一部分)。

我在该访问模型中有一个名为“访问”的课程,我将有基本的访问,如姓名、目的、开始、结束日期等……在那个课程中,我还有谁将主持访问以及谁请求访问。

你觉得下面的课怎么样?

在此处输入图像描述

 //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() { }

}

4

1 回答 1

0

一开始看起来还不错,但是在您真正开始编码和测试初始域模型之前,我不会制作一个硬而快速的域模型,因为您可能会发现事情并没有按预期工作,或者有些东西您错过了,或要求更改等。

快速浏览的其他要点。

  • VisitBasic 的目的是什么,它应该是一个抽象基类还是名称更清楚?
  • 您可能想让主机成为它自己的类,它可能包含与人员类无关的信息,因此可能是人员的子类。但如上所述,迭代开发它可能会更好。也可能是请求者,但可能不太可能。

更新响应:现在大多数事情的标准设计是添加一个服务层,即带有 createVisit 方法的 VisitService,并且访问对象上的属性应该只是链接到主机和请求者,而不需要任何业务逻辑。(希望这能回答你的问题?)

于 2011-12-30T03:17:48.063 回答