我目前正在使用MVC模式制作一个简单的待办事项列表程序,因此具有Notebook的模型类。然而,由于成员数量非常少,因此感觉“不合适”。
Notebook由类别组成,这些类别由待办事项列表组成,这些列表由项目组成。
我不能放置的是这是否是一个案例差的分析(例如,有更多的成员和责任,我只是错过了他们......)或者可能是代码气味,不需要该类(在这种情况下,我不知道该怎么做我可以在该控制器中找到一个类别列表,但是我没有建模的笔记本实体,这似乎也是错误的。
以下是我所拥有的非常简单的课程:
class Notebook
{
private String title;
private List<Category> categories;
public Notebook(String title, List<Category> categories)
{
}
public void setCategories(List<Category> categories)
{
}
public List<Category> getCategories()
{
}
}
我经常遇到这个问题,感觉就像我为了它而上课,而且他们有很多成员/责任,所以很高兴知道我是否有无缘无故的压力。
不一定,域驱动设计中存在所谓的“标准类型”的概念。这实际上是一个包含在对象类中的基本原语。这个想法是原语不包含它包含什么信息的信息,它只是一个字符串/ int / whatever。因此,通过说出围绕基元的对象并确保它始终有效来确保该对象具有远远超出其包含的原语的含义,例如,一个名字不仅仅是一个字符串,它是一个名字。
这是一个取自Velocity评论的例子
public class Velocity
{
private readonly decimal _velocityInKPH;
public static Velocity VelocityFromMPH(decimal mph)
{
return new Velocity(toKph(mph));
}
private Velocity(decimal kph)
{
this._velocityInKPH = kph;
}
public decimal Kph
{
get{ return this._velocityInKPH; }
}
public decimal Mph
{
get{ return toMph(this._velocityInKPH); }
}
// equals addition subtraction operators etc.
private static decimal ToMph(decimal kph){ // conversion code }
private static decimal ToKph(decimal mph){ // conversion code }
}