前言

在学习抽象工厂模式之前,最好先学习了解简单工厂模式和工厂方法模式。这样会对学习抽象工厂模式有帮助,因为抽象工厂模式也是基于工厂方法模式的。

解释

说白了就是工厂的工厂,以一个超级工厂为核心,围绕这个超级工厂去创建其他工厂,最后工厂再去用它自己的生产线去生产鼠标、键盘…

特点

有多个抽象产品类,具体工厂类能创建多个具体产品类实例。

实现

1.抽象工厂

也唤作超级工厂,是工厂的工厂。具体的联想工厂、惠普工厂的创建,都是围绕这个超级工厂展开的

/*** 抽象工厂*/public abstract class ComputerFactory {//生产键盘public abstract IKeyboard createKeyboard();//生产屏幕public abstract IScreen createScreen();
}

2.产品接口

为以下产品定义的接口

public interface IKeyboard {//键盘void keyboard();
}
public interface IScreen {//屏幕void screen();
}

3.根据产品接口定义不同对象

实现抽象接口,定义不同的对象。当然了,除了键盘除了雷蛇,还有HHKB、达尔优;屏幕除了三星,还有京东方…

public class RazerKeyboard implements IKeyboard {@Overridepublic void keyboard() {System.out.print("雷蛇机械键盘");}
}
public class SamsungScreen implements IScreen {@Overridepublic void screen() {System.out.print("三星屏幕");}
}

4.实现具体工厂类

除了美帝良心想,还有铁板熊掌普等其他工厂

/*** 联想工厂*/
public class LenovoFactory extends ComputerFactory {@Overridepublic IKeyboard createKeyboard() {return new RazerKeyboard();}@Overridepublic IScreen createScreen() {return new SamsungScreen();}
}

5.客户端调用

public class UserClient {public static void main(String []args){//美帝良心想工厂LenovoFactory foxconnFactory = new LenovoFactory();foxconnFactory.createKeyboard().keyboard();//代工雷蛇键盘生产foxconnFactory.createScreen().screen();//代工三星屏幕生产...//这里如果我不喜欢拯救者,想换个暗影精灵,只需要创建hp工厂对象,由hp工厂去生产即可}
}

设计模式之抽象工厂模式学习笔记相关推荐

  1. 设计模式之简单工厂模式学习笔记

    前言 简单工厂模式,又叫做静态工厂方法模式.属于创建型工厂模式,但是不属于23中设计模式.学习简单工厂模式,是为了更好地学习工厂方法模式. 定义 简单工厂模式,即静态工厂方法模式,是由一个工厂对象决定 ...

  2. python抽象工厂模式_Python设计模式之抽象工厂模式

    Python设计模式之抽象工厂模式 这篇文章主要为大家详细介绍了Python设计模式之抽象工厂模式,感兴趣的小伙伴们可以参考一下 python面向对象编程入门,我们需要不断学习进步 "&qu ...

  3. 设计模式系列·抽象工厂模式

    前言 以小说的笔法写的设计模式系列文章,你绝对看得懂![首发于公众号:"聊聊代码"] 设计模式系列·王小二需求历险记(一) 设计模式系列·王小二需求历险记(二) 设计模式系列·封装 ...

  4. 设计模式三—抽象工厂模式

    设计模式三-抽象工厂模式 一.定义 抽象工厂模式是工厂方法模式的进一步抽象.如果产品簇中只有一种产品,则退化为工厂方法模式. 二.原理图 三.代码实例 * 苹果和土豆是园丁1的杰作 * 葡萄和西红柿是 ...

  5. 乐在其中设计模式(C#) - 抽象工厂模式(Abstract Factory Pattern)

    原文:乐在其中设计模式(C#) - 抽象工厂模式(Abstract Factory Pattern) [索引页] [源码下载] 乐在其中设计模式(C#) - 抽象工厂模式(Abstract Facto ...

  6. 设计模式复习-抽象工厂模式

    设计模式复习-抽象工厂模式 有两种硬件,PC和Phone,有两种系统,Windows和Linux,现在假设PC和Phone上全都能安装这两个系统,并且将来硬件不会在变化,但是系统可能需要扩展,比如扩展 ...

  7. 设计模式之四(抽象工厂模式第三回合)

    原文:设计模式之四(抽象工厂模式第三回合) 前言 抽象工厂模式:提供一个创建一系列相关或相互依赖对象的接口,而无需指定它们具体的类. 抽象工厂模式最大的好处便是易于交换产品系列,由于具体工厂类,例如I ...

  8. 设计模式-04抽象工厂模式

    设计模式-04抽象工厂模式 文章中涉及到的代码,请自行下载 https://gitee.com/pan_xiao_lei123/designmode.git 前面介绍的工厂方法模式中考虑的是一类产品的 ...

  9. C#设计模式(4)——抽象工厂模式

    C#设计模式(4)--抽象工厂模式 一.引言 在上一专题中介绍了工厂方法模式,工厂方法模式是为了克服简单工厂模式的缺点而设计出来的,简单工厂模式的工厂类随着产品类的增加需要增加额外的代码),而工厂方法 ...

最新文章

  1. uva 558 Wormholes
  2. BZOJ-2115-Xor-WC2011
  3. 【机器学习基础】数学推导+纯Python实现机器学习算法1:线性回归
  4. [html] 制作页面时,前端如何适应各种异形屏?
  5. Java并发包JUC的Lock锁讲解
  6. eclipse plugins
  7. 准备好的文字转换成语音的方法
  8. [2017.01.04] 经典排序算法思想及其实现
  9. 迭代重心法 matlab,重心法
  10. wordpress自动采集插件wp-autopost-pro 3.7.8 完美绿色版
  11. 百度网盘python客户端——筑梦之路
  12. 分布式存储引擎大厂实战——一文了解分布式存储的可靠性
  13. python泊松分布_泊松分布与Python图解
  14. 模电_安规X电容_Y电容-区别与作用-20190507
  15. IPFS未来展望,迎接Web3.0新潮流
  16. php pdo 事物类,一个基于PDO的数据库操作类(新) 一个PDO事务实例
  17. Java实现本机IP的修改和获取
  18. ElasticSearch经纬度相关查询
  19. Vue基础——VueJS是什么、Vue的优缺点、vue2和vue3的模板区别、MVVM数据双向绑定、Vue的安装和使用、Vue模板语法-文本渲染、常用的vue的指令
  20. cocos lua 获取点到直线距离

热门文章

  1. c枚举类型enum例题_一篇文章让你详细了解Java中Enum枚举类的使用
  2. c# 可选参数与命名实参
  3. 理解Java中的弱引用(Weak Reference)
  4. JavaScript引擎研究与C、C++与互调用(转)
  5. [笔记].关于Nios II的数据类型的一点想法
  6. 马化腾很受伤 后果很严重
  7. WinForm禁用窗体自带的关闭功能
  8. poj1654 Area
  9. java学习之—实现一个简单的ArrayList
  10. Android被忽略的tools