二、什么是 抽象工厂模式

抽象工厂模式(Abstract Factory Pattern)是一种软件开发设计模式。抽象工厂模式提供了一种方式,可以将一组具有同一主题的单独的工厂封装起来。如果比较抽象工厂模式和工厂模式,我们不难发现前者只是在工厂模式之上增加了一层抽象的概念。抽象工厂是一个父类工厂,可以创建其它工厂类。所以我们也叫它 “工厂的工厂”。(想想上节课的 “女娲娘娘”,这简直就是 “女娲娘娘的亲娘” 啊...)

三、 抽象工厂模式类图

四、 抽象工厂模式示例代码

Talk is cheap, show me the code.



五、抽象工厂模式应用

抽象工厂模式特别适合于这样的一种产品结构:产品分为几个系列,在每个系列中,产品的布局都是类似的,在一个系列中某个位置的产品,在另一个系列中一定有一个对应的产品。这样的产品结构是存在的,这几个系列中同一位置的产品可能是互斥的,它们是针对不同客户的解决方案,每个客户都只选择其一。

六、工厂方法模式、抽象工厂模式区别

工厂方法模式、抽象工厂模式,傻傻分不清楚...

为了解释得更清楚,先介绍两个概念:

  • 产品等级结构:比如一个抽象类是食物,其子类有苹果、牛奶等等,则抽象食物与具体食物名称之间构成了一个产品等级结构。食物是抽象的父类,而具体的食物名称是其子类。

  • 产品族:在抽象工厂模式中,产品族是指由同一个工厂生产的,位于不同产品等级结构中的一组产品。如 AKitchen 生产的苹果、刀子,苹果属于食物产品等级结构中,而刀子则属于餐具产品等级结构中。

因此工厂方法模式、抽象工厂模式最大的区别在于:

工厂方法模式:针对的是 一个产品等级结构

抽象工厂模式:针对 多个产品等级结构

最新文章

  1. Entity Framework之IQueryable和list本地集合
  2. 用SQL语句获得一个存储过程返回的表
  3. shell脚本二
  4. hrb 2134 素数
  5. c# 使用正则表达式 提取章节小说正文全本篇
  6. Delphi 记录类型- 结构指针
  7. AngularJS_对象数组-filter-orderBy
  8. EF5&MVC4 学习1、创建新的Contoso University Application,并创建Model Class 生成对应的database
  9. Java根据html模板创建 html文件
  10. bzoj3293 [Cqoi2011]分金币&&bzoj1045 [HAOI2008]糖果传递
  11. SQL中采用Newtonsoft.Json处理json字符串
  12. U3D简单得换装技术
  13. 【vuejs深入三】vue源码解析之二 htmlParse解析器的实现
  14. ubuntu中安装samba
  15. Springboot集成Quartz
  16. springboot入门使用
  17. Javascript - ExtJs - Window组件
  18. Confluence 6 修改日志文件的大小数量和级别
  19. jquery attr方法和prop方法获取input的checked属性问题
  20. 〖Android〗Android App项目资源字符串检查(检查是否缺少对应的翻译,导致系统切换语言后崩溃)

热门文章

  1. cs11_c++_lab4b
  2. arcgis基于地形数据的坡度分析
  3. 会话状态已创建一个会话 ID,但由于响应已被应用程序刷新而无法保存它
  4. XML语法
  5. angular表单
  6. php curl get
  7. Android应用开发项目结构分析
  8. Linux和windows之间通过scp复制文件
  9. information_schema系列十二
  10. 关于rank、dense_rank、ROW_NUMBER及OVER(PARTITION BY)、OVER(ORDER BY)的一些用法