java 抽象工厂模式 代码示例
时间: 2023-06-21 19:23:14 浏览: 111
抽象工厂模式代码示例
好的,以下是一个简单的 Java 抽象工厂模式的示例代码:
```
// 定义一个产品接口
interface Product {
void use();
}
// 具体产品1
class ConcreteProduct1 implements Product {
@Override
public void use() {
System.out.println("使用具体产品1");
}
}
// 具体产品2
class ConcreteProduct2 implements Product {
@Override
public void use() {
System.out.println("使用具体产品2");
}
}
// 抽象工厂接口
interface AbstractFactory {
Product createProduct1();
Product createProduct2();
}
// 具体工厂1
class ConcreteFactory1 implements AbstractFactory {
@Override
public Product createProduct1() {
return new ConcreteProduct1();
}
@Override
public Product createProduct2() {
return new ConcreteProduct2();
}
}
// 具体工厂2
class ConcreteFactory2 implements AbstractFactory {
@Override
public Product createProduct1() {
return new ConcreteProduct2();
}
@Override
public Product createProduct2() {
return new ConcreteProduct1();
}
}
// 测试代码
public class Client {
public static void main(String[] args) {
AbstractFactory factory1 = new ConcreteFactory1();
Product product1 = factory1.createProduct1();
Product product2 = factory1.createProduct2();
product1.use();
product2.use();
AbstractFactory factory2 = new ConcreteFactory2();
Product product3 = factory2.createProduct1();
Product product4 = factory2.createProduct2();
product3.use();
product4.use();
}
}
```
在上面的代码中,我们定义了一个 `Product` 接口和两个具体产品类 `ConcreteProduct1` 和 `ConcreteProduct2`。接着定义了一个 `AbstractFactory` 抽象工厂接口,其中的 `createProduct1()` 和 `createProduct2()` 方法分别用于创建两种不同类型的产品对象。然后我们定义了两个具体工厂类 `ConcreteFactory1` 和 `ConcreteFactory2`,它们都实现了 `AbstractFactory` 接口并分别实现了 `createProduct1()` 和 `createProduct2()` 方法。最后在测试代码中,通过不同的具体工厂类创建了不同类型的产品对象并调用了它们的 `use()` 方法。
这就是一个简单的 Java 抽象工厂模式的示例代码,希望能帮助到你。
阅读全文