public class Painter {
private List<Paintable> paintableObjects;
public Painter(){
paintableObjects = new ArrayList<Paintable>();
}
public void paintAllObjects(){
for(Paintable paintable : paintableObjects){
paintable.paint();
}
}
}
public interface Paintable {
public void paint();
}
现在您可以向学生解释,如果没有 Paintable 接口,Painter 对象将需要具有绘制某些类型的对象的方法,例如称为paintFences() and paintRocks()我们需要一个新的Collection对于每种类型的物体,我们希望画家能够绘画。