我遇到了解Java接口语义的问题。我在用代码填充之前用接口问题建模。我这样做是通过找出问题中的名词并为它们创建一个界面,例如:
每个房子里至少有一个人。每个房子也可能只包含一辆自行车,可能至少包含一辆汽车。
所以,我会创建IHouse,IPerson和IVehicle接口(因为我们将来可能会有不同类型的房屋,人员和车辆)。
当我进入这些名词的形容词时会出现问题,例如:
每个房子,自行车和汽车都可能有一定的颜色。
我没有在每个车辆和房屋类中创建以下方法,而是创建以下界面:
public interface IPainted {
public Paint getPaint();
public void setPaint();
}
并将其应用于车辆和房屋界面:
public interface IVehicle extends IPainted {
}
这是表示形容词的最佳方式吗?
答案 0 :(得分:2)
是。并且将“名词”和“形容词”的两个有点尴尬的名称放在同一个桶中,使用后缀“able” - 在本例中为public interface Paintable
。因此,与可绘制性有关的可绘制类的所有属性应该封装在该类实现的Paintable
接口中。