Java工厂模式抽象工厂模式
工厂模式是一种设计模式,它允许创建对象而不是实例化对象。在Java中,工厂模式被用于创建对象,而抽象工厂模式则更加抽象,允许创建多种类型的工厂对象,但不需要指定具体的工厂实例类型。
在Java中,抽象工厂模式通常用于创建不可见或抽象的对象。例如,一个公司可能创建多个制造厂,但每个制造厂只生产一种特定的产品。这时候,抽象工厂模式就可以发挥作用,让工厂工厂类只负责创建工厂类的对象,而不需要知道具体的产品类型。
下面是一个使用抽象工厂模式的示例:
```
public abstract class Factory {
public abstract void create();
}
public class concreteFactory1 extends Factory {
public void create() {
System.out.println("Concrete Factory 1 created.");
}
}
public class concreteFactory2 extends Factory {
public void create() {
System.out.println("Concrete Factory 2 created.");
}
}
public class Product {
private Factory factory;
public Product( Factory factory ) {
this.factory = factory;
}
public void use() {
factory.create();
}
}
public class Main {
public static void main(String[] args) {
ConcreteFactory1 factory1 = new ConcreteFactory1();
ConcreteFactory2 factory2 = new ConcreteFactory2();
Product product1 = factory1.create();
Product product2 = factory2.create();
product1.use();
product2.use();
}
}
```
在这个示例中,我们定义了一个抽象工厂类`Factory`,它实现了`create`方法,但没有提供任何具体的方法。然后我们定义了两个具体工厂类`ConcreteFactory1`和`ConcreteFactory2`,它们实现了抽象工厂类`Factory`中的`create`方法。
在`Product`类中,我们创建了一个`Factory`对象`factory`,并将其传递给`use`方法。
最后,在`Main`类中,我们创建了两个`Factory`对象`factory1`和`factory2`,并分别创建了两个`Product`对象`product1`和`product2`,然后调用`use`方法,让`product1`和`product2`使用它们创建的工厂对象来创建对象。
抽象工厂模式允许创建不可见或抽象的对象,而不需要指定具体的工厂实例类型。这使得工厂类更加灵活,可以根据实际需要创建不同类型的对象。同时,抽象工厂模式也可以提高代码的可读性,因为每个具体的工厂类都只负责创建工厂类的对象,而不需要知道具体的产品类型。
下一篇:容易陷入感情漩涡的心理调适