一个类中的成员数量是否被认为是代码气味?

时间:2013-06-27 16:26:39

标签: oop member instance-variables decomposition

我目前正在使用MVC模式制作一个简单的待办事项列表程序,因此具有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()
    {
    }
}

我经常遇到这个问题,感觉就像我为了它而上课,而且他们有很多成员/责任,所以很高兴知道我是否有无缘无故的压力。< / p>

1 个答案:

答案 0 :(得分:1)

不一定,域驱动设计中存在所谓的“标准类型”的概念。这实际上是一个包含在对象类中的基本原语。这个想法是原语不包含它包含什么信息的信息,它只是一个字符串/ 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 }
}