// 父类接口
interface Animal {
void speak();
}
// 子类实现
class Dog implements Animal {
@Override
public void speak() {
System.out.println("Woof!");
}
}
class Cat implements Animal {
@Override
public void speak() {
System.out.println("Meow!");
}
}
// 工厂类
class AnimalFactory {
private static final Map<String, Class<? extends Animal>> types = new HashMap<>();
static {
types.put("dog", Dog.class);
types.put("cat", Cat.class);
}
public static Animal createAnimal(String type) {
try {
return types.get(type).newInstance();
} catch (Exception e) {
e.printStackTrace();
return null;
}
}
}
// 使用示例
public class Main {
public static void main(String[] args) {
Animal dog = AnimalFactory.createAnimal("dog");
if (dog != null) {
dog.speak(); // 输出 "Woof!"
}
Animal cat = AnimalFactory.createAnimal("cat");
if (cat != null) {
cat.speak(); // 输出 "Meow!"
}
}
}
根据类型跳转不同子类
Java动物工厂模式示例
最新推荐文章于 2025-12-05 09:23:51 发布
1982

被折叠的 条评论
为什么被折叠?



