5

我在理解 Java 接口的语义时遇到了问题。在用代码填充接口之前,我正在对接口问题进行建模。我通过找出问题中的名词并为它们创建一个接口来做到这一点,例如:

每个房子里至少有一个人。每所房子也可能恰好包含一辆自行车,并且可能包含至少一辆汽车。

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

当我进入这些名词的形容词时,问题就来了,例如:

每个房子、自行车和汽车都可能有某种颜色。

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

public interface IPainted {

    public Paint getPaint();

    public void setPaint();

}

并将其应用于车辆和房屋接口:

public interface IVehicle extends IPainted {
}

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

4

1 回答 1

2

是的。并且要将您有点尴尬的“名词”和“形容词”放在同一个桶中,请使用后缀“able” - 在这种情况下public interface Paintable。因此,与可绘制性有关的可绘制类的所有属性都应封装在该类实现的接口中Paintable

于 2013-01-14T21:01:50.520 回答