抽象工厂模式定义
为创建一组相关或相互依赖的对象提供一个接口,而且无须指定它们的具体类
使用场景
一个对象族 (或是一组没有任何关系的对象)都有相同的约束。涉及不同操作系统的时候,就可以考虑使用抽象工厂模式
需求背景
使用抽象工厂模式实现一个生产汽车和生产服装的java代码
以下是使用抽象工厂模式实现生产汽车和生产服装的Java代码示例:
1. 首先定义抽象工厂接口
public interface Factory {
Car createCar();
Clothing createClothing();
}
2. 定义汽车工厂和服装工厂,并实现了抽象工厂接口
public class CarFactory implements Factory {
public Car createCar() {
return new Car();
}
public Clothing createClothing() {
return null; // 汽车工厂不生产服装,这里返回null
}
}
public class ClothingFactory implements Factory {
public Car createCar() {
return null; // 服装工厂不生产汽车,这里返回null
}
public Clothing createClothing() {
return new Clothing();
}
}
3. 定义汽车和服装的具体实现类
public class Car {
public void run() {
System.out.println("汽车启动了!");
}
}
public class Clothing {
public void wear() {
System.out.println("穿上了新衣服!");
}
}
4. 使用示例
public class Client {
public static void main(String[] args) {
Factory carFactory = new CarFactory();
Car car = carFactory.createCar();
car.run();
Factory clothingFactory = new ClothingFactory();
Clothing clothing = clothingFactory.createClothing();
clothing.wear();
}
}
5. 输出结果
汽车启动了!
穿上了新衣服!
6. 小结
在这个示例中,抽象工厂接口定义了两个抽象方法,用于创建汽车和服装。具体的汽车工厂和服装工厂实现了这个接口并分别实现了这两个方法。具体的汽车和服装实现了各自的具体逻辑。客户端通过使用工厂接口和工厂实现类来创建具体的汽车和服装。