工厂方法和并行类层次结构

时间:2014-05-30 01:22:31

标签: oop design-patterns

狗是动物。 动物有一个房子。 DogHouse是一个房子。

工厂方法确保Dog's House是一个DogHouse,但它仍然被打成一个房子,我需要它作为DogHouse键入。

有很多方法可以解决这个问题,但我想知道是否有标准方法。我在Objective C中写作。

1 个答案:

答案 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;
    }
}