下面是一个工厂方法模式的示例代码
// 创建一个抽象产品类
public abstract class Animal {
public abstract void speak();
}
// 创建具体产品类
public class Dog extends Animal {
@Override
public void speak() {
System.out.println("Dog says: Woof!");
}
}
public class Cat extends Animal {
@Override
public void speak() {
System.out.println("Cat says: Meow!");
}
}
// 创建工厂接口
public interface AnimalFactory {
Animal createAnimal();
}
// 创建具体工厂类
public class DogFactory implements AnimalFactory {
@Override
public Animal createAnimal() {
return new Dog();
}
}
public class CatFactory implements AnimalFactory {
@Override
public Animal createAnimal() {
return new Cat();
}
}
// 客户端代码
public class Main {
public static void main(String[] args) {
AnimalFactory dogFactory = new DogFactory();
Animal dog = dogFactory.createAnimal();
dog.speak(); // 输出: Dog says: Woof!
AnimalFactory catFactory = new CatFactory();
Animal cat = catFactory.createAnimal();
cat.speak(); // 输出: Cat says: Meow!
}
}