设计模式-抽象工厂

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/weixin_42528266/article/details/95042953

抽象工厂(AbstractFactory)模式的定义:是一种为访问类提供一个创建一组相关或相互依赖对象的接口,且访问类无须指定所要产品的具体类就能得到同族的不同等级的产品的模式结构

抽象工厂模式是工厂方法模式的升级版本,工厂方法模式只生产一个等级的产品,而抽象工厂模式可生产多个等级的产品。

1.应用场景

  • 当需要创建的对象是一系列相互关联或相互依赖的产品族时,如电器工厂中的电视机、洗衣机、空调等。
  • 系统中有多个产品族,但每次只使用其中的某一族产品。如有人只喜欢穿某一个品牌的衣服和鞋。
  • 系统中提供了产品的类库,且所有产品的接口相同,客户端不依赖产品实例的创建细节和内部结构。

2.代码实例

2.1 抽象工厂类
public interface AbstractFactory {
    ProductParent1 newProduct1();
    ProductParent2 newProduct2();
}
2.2 具体实例化工厂类
public class ConcreteFactory implements AbstractFactory{

    @Override
    public ProductParent1 newProduct1() {
        System.out.println("具体工厂 1 生成-->具体产品 11...");
        return new ProductChild1();
    }

    @Override
    public ProductParent2 newProduct2() {
        System.out.println("具体工厂 1 生成-->具体产品 21...");
        return new ProductChild2();
    }
}
2.3 具体产品1工厂
public class ProductParent1{
    //TODO 具体字段根据需要进行添加
}
2.4 具体产品1
public class ProductChild1 extends ProductParent1 {
    //TODO 具体字段根据需要进行添加
}
2.5 具体产品2工厂
public class ProductParent2 {

   //TODO 具体字段根据需要进行添加
}
2.6 具体产品2
public class ProductChild2 extends ProductParent2 {
    //TODO 具体字段根据需要进行添加
}
展开阅读全文

没有更多推荐了,返回首页