狗是动物。 动物有一个房子。 DogHouse是一个房子。
工厂方法确保Dog's House是一个DogHouse,但它仍然被打成一个房子,我需要它作为DogHouse键入。
有很多方法可以解决这个问题,但我想知道是否有标准方法。我在Objective C中写作。
答案 0 :(得分:0)
泛型。
例如,在Java中:
interface Animal<T extends House> {
T getHouse();
}
class Dog implements Animal<DogHouse> {
private final DogHouse dh = new DogHouse();
@Override
public DogHouse getHouse() {
return dh;
}
}