Java编写三种工厂模式
时间: 2023-07-07 10:43:43 浏览: 59
好的,我来介绍一下Java中的三种工厂模式:
1. 简单工厂模式(Simple Factory Pattern)
简单工厂模式是一种创建型设计模式,它提供了一个创建对象的最佳方式。在简单工厂模式中,我们创建对象而无需暴露创建逻辑给客户端,我们将创建对象的逻辑封装在一个工厂类中。
示例代码:
```
public class SimpleFactory {
public static Product createProduct(String type) {
if ("A".equals(type)) {
return new ConcreteProductA();
} else if ("B".equals(type)) {
return new ConcreteProductB();
} else {
return null;
}
}
}
```
2. 工厂方法模式(Factory Method Pattern)
工厂方法模式是一种创建型设计模式,它定义了一个用于创建对象的接口,但由子类决定要实例化的类是哪一个。工厂方法让类把实例化推迟到子类。
示例代码:
```
public abstract class Factory {
public abstract Product createProduct();
}
public class ConcreteFactoryA extends Factory {
@Override
public Product createProduct() {
return new ConcreteProductA();
}
}
public class ConcreteFactoryB extends Factory {
@Override
public Product createProduct() {
return new ConcreteProductB();
}
}
```
3. 抽象工厂模式(Abstract Factory Pattern)
抽象工厂模式是一种创建型设计模式,它允许客户端使用抽象接口来创建一组相关的产品,而不需要知道或关心实际生产出的具体产品是什么。它是工厂方法模式的扩展,它支持多个产品族的创建。
示例代码:
```
public interface AbstractFactory {
public AbstractProductA createProductA();
public AbstractProductB createProductB();
}
public class ConcreteFactory1 implements AbstractFactory {
@Override
public AbstractProductA createProductA() {
return new ProductA1();
}
@Override
public AbstractProductB createProductB() {
return new ProductB1();
}
}
public class ConcreteFactory2 implements AbstractFactory {
@Override
public AbstractProductA createProductA() {
return new ProductA2();
}
@Override
public AbstractProductB createProductB() {
return new ProductB2();
}
}
```
以上是Java中的三种工厂模式,希望对你有帮助。