【发布时间】:2012-05-01 16:39:45
【问题描述】:
我在做工厂模式的研发我已经开发了下面的代码,请根据工厂模式的功能告诉它是否正确..
public abstract class Animal {
public abstract String makeSound();
}
public class Dog extends Animal {
@Override
public String makeSound() {
return "Woof";
}
}
public class Cat extends Animal {
@Override
public String makeSound() {
return "Meow";
}
}
public class AnimalFactory {
public Animal getAnimal(String type) {
if ("canine".equals(type)) {
return new Dog();
} else {
return new Cat();
}
}
}
public class Main {
public static void main(String[] args) {
AnimalFactory animalFactory = new AnimalFactory();
Animal a1 = animalFactory.getAnimal("feline");
System.out.println("a1 sound: " + a1.makeSound());
Animal a2 = animalFactory.getAnimal("canine");
System.out.println("a2 sound: " + a2.makeSound());
}
}
根据工厂模式的设计,请指教是否正确,我可以进一步改进吗
【问题讨论】:
-
研发?你不只需要阅读 GoF 的书吗?看起来不错...
-
我会调用工厂方法
createAnimal而不是getAnimal,因为它就是这样做的。
标签: java design-patterns