使用Java接口表示名词和形容词是否正确?

时间:2013-01-14 20:55:48

标签: java interface encapsulation

我遇到了解Java接口语义的问题。我在用代码填充之前用接口问题建模。我这样做是通过找出问题中的名词并为它们创建一个界面,例如:

  

每个房子里至少有一个人。每个房子也可能只包含一辆自行车,可能至少包含一辆汽车。

所以,我会创建IHouse,IPerson和IVehicle接口(因为我们将来可能会有不同类型的房屋,人员和车辆)。

当我进入这些名词的形容词时会出现问题,例如:

  

每个房子,自行车和汽车都可能有一定的颜色。

我没有在每个车辆和房屋类中创建以下方法,而是创建以下界面:

public interface IPainted {

    public Paint getPaint();

    public void setPaint();

}

并将其应用于车辆和房屋界面:

public interface IVehicle extends IPainted {
}

这是表示形容词的最佳方式吗?

1 个答案:

答案 0 :(得分:2)

是。并且将“名词”和“形容词”的两个有点尴尬的名称放在同一个桶中,使用后缀“able” - 在本例中为public interface Paintable。因此,与可绘制性有关的可绘制类的所有属性应该封装在该类实现的Paintable接口中。