用Java写一个抽象工厂模式的代码
时间: 2023-05-25 17:01:43 浏览: 100
Java工厂模式:简单工厂、工厂方法模式、抽象工厂模式代码示例
好的,以下是一个使用Java实现的抽象工厂模式:
```
// 定义抽象工厂接口
public interface AbstractFactory {
// 创建产品A
public ProductA createProductA();
// 创建产品B
public ProductB createProductB();
}
// 创建具体工厂1
public class ConcreteFactory1 implements AbstractFactory {
// 创建产品A
public ProductA createProductA() {
return new ConcreteProductA1();
}
// 创建产品B
public ProductB createProductB() {
return new ConcreteProductB1();
}
}
// 创建具体工厂2
public class ConcreteFactory2 implements AbstractFactory {
// 创建产品A
public ProductA createProductA() {
return new ConcreteProductA2();
}
// 创建产品B
public ProductB createProductB() {
return new ConcreteProductB2();
}
}
// 定义抽象产品A接口
public interface ProductA {
// 定义产品A的方法
public void methodA();
}
// 定义抽象产品B接口
public interface ProductB {
// 定义产品B的方法
public void methodB();
}
// 创建具体产品A1
public class ConcreteProductA1 implements ProductA {
// 实现产品A的方法
public void methodA() {
System.out.println("ConcreteProductA1: method A");
}
}
// 创建具体产品A2
public class ConcreteProductA2 implements ProductA {
// 实现产品A的方法
public void methodA() {
System.out.println("ConcreteProductA2: method A");
}
}
// 创建具体产品B1
public class ConcreteProductB1 implements ProductB {
// 实现产品B的方法
public void methodB() {
System.out.println("ConcreteProductB1: method B");
}
}
// 创建具体产品B2
public class ConcreteProductB2 implements ProductB {
// 实现产品B的方法
public void methodB() {
System.out.println("ConcreteProductB2: method B");
}
}
// 测试代码
public class Test {
public static void main(String[] args) {
// 创建工厂1
AbstractFactory factory1 = new ConcreteFactory1();
// 创建产品A1
ProductA productA1 = factory1.createProductA();
// 创建产品B1
ProductB productB1 = factory1.createProductB();
// 调用产品A1方法
productA1.methodA();
// 调用产品B1方法
productB1.methodB();
// 创建工厂2
AbstractFactory factory2 = new ConcreteFactory2();
// 创建产品A2
ProductA productA2 = factory2.createProductA();
// 创建产品B2
ProductB productB2 = factory2.createProductB();
// 调用产品A2方法
productA2.methodA();
// 调用产品B2方法
productB2.methodB();
}
}
```
这个代码示例中,我们定义了抽象工厂接口和抽象产品接口,并实现了两个具体工厂和四个具体产品。在测试代码中,我们使用具体工厂创建具体产品并调用其方法,以验证抽象工厂模式的实现是否正确。
阅读全文