? ? ? 抽象工厂模式(Abstract Factory Pattern)是一种创建型设计模式,它提供了一种创建一系列相关或相互依赖对象的接口,而无需指定它们的具体类。在抽象工厂中,客户端使用抽象工厂来获取一组相关的产品对象,而不需要知道具体的产品是如何被创建出来的。
// 抽象产品
public interface Color {
String getColor();
}
public interface Shape {
String getShape();
}
// 具体产品
public class RedColor implements Color {
@Override
public String getColor() {
return "Red";
}
}
public class BlueColor implements Color {
@Override
public String getColor() {
return "Blue";
}
public class Circle implements Shape {
@Override
public String getShape() {
return "Circle";
}
}
public class Square implements Shape {
@Override
public String getShape() {
return "Square";
}
// 抽象工厂
public interface Factory {
Color getColor();
Shape getShape();
}
// 具体工厂
public class PrimaryColorsFactory implements Factory {
@Override
public Color getColor() {
return new RedColor(); // 或者返回 BlueColor
}
@Override
public Shape getShape() {
return new Circle(); // 或者返回 Square
}
}
public class SecondaryColorsFactory implements Factory {
// 创建其他颜色和形状的实现...
}
// 客户端代码
public class Client {
public static void main(String[] args) {
Factory primaryColors = new PrimaryColorsFactory();
System.out.println("Primary Colors Factory: " + primaryColors.getColor().getColor()
+ " and " + primaryColors.getShape().getShape());
Factory secondaryColors = new SecondaryColorsFactory();
// 使用secondaryColors来获取产品...
}
}