我正在做的工厂图谱R & d我开发了下面的代码,请指教是正确的,因为每个工厂模式的功能..关于工厂设计模式
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());
}
}
请指教它是正确的按照工厂模式的设计,我可以提高它进一步
R&d?你不需要阅读GoF书吗?看起来很好... – duffymo
我会调用工厂方法'createAnimal'而不是'getAnimal',因为这就是它的作用。 – assylias