前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >设计模式-抽象工厂

设计模式-抽象工厂

作者头像
cwl_java
发布2019-10-26 20:46:29
1630
发布2019-10-26 20:46:29
举报
文章被收录于专栏:cwl_Javacwl_Java

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

1.应用场景
  • 当需要创建的对象是一系列相互关联或相互依赖的产品族时,如电器工厂中的电视机、洗衣机、空调等。
  • 系统中有多个产品族,但每次只使用其中的某一族产品。如有人只喜欢穿某一个品牌的衣服和鞋。
  • 系统中提供了产品的类库,且所有产品的接口相同,客户端不依赖产品实例的创建细节和内部结构。
2.代码实例
2.1 抽象工厂类
代码语言:javascript
复制
public interface AbstractFactory {
    ProductParent1 newProduct1();
    ProductParent2 newProduct2();
}
2.2 具体实例化工厂类
代码语言:javascript
复制
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工厂
代码语言:javascript
复制
public class ProductParent1{
    //TODO 具体字段根据需要进行添加
}
2.4 具体产品1
代码语言:javascript
复制
public class ProductChild1 extends ProductParent1 {
    //TODO 具体字段根据需要进行添加
}
2.5 具体产品2工厂
代码语言:javascript
复制
public class ProductParent2 {

   //TODO 具体字段根据需要进行添加
}
2.6 具体产品2
代码语言:javascript
复制
public class ProductChild2 extends ProductParent2 {
    //TODO 具体字段根据需要进行添加
}
本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2019-09-03 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 1.应用场景
  • 2.代码实例
    • 2.1 抽象工厂类
      • 2.2 具体实例化工厂类
        • 2.3 具体产品1工厂
          • 2.4 具体产品1
            • 2.5 具体产品2工厂
              • 2.6 具体产品2
              领券
              问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档