使用下面这个网址的例子:PC与手机,小米与apple来举例子:
设计模式——工厂模式
开闭原则是指:不能够修改已经有的代码,只能够新增代码或者新增一个接口套在原来的接口上面。

如果我们想你要新增加生产爱三星手机,那么满足开闭原则,因为没有已有代码被更改,而是有两处增加:1)Phone增加了一个具体类SamsungPhone ,2)AbstractFactory增加了一个新的具体工厂SamSungFactory

如果你想要新增加生产一种手表,那么不满足,因为需要1)新增一个抽象类AbstractWatch, 2)修改所有的具体工厂,加上createWatch():AbstractWatch
有对于已有代码的修改,所以不满足

进一步理解抽象工厂模式——开闭原则相关推荐

  1. 用抽象工厂模式开奶茶店

    用抽象工厂模式开奶茶店 相关概念 产品等级结构 :产品等级结构即产品的继承结构,如一个抽象类是电视机,其子类有海尔电视机.海信电视机.TCL电视机,则抽象电视机与具体品牌的电视机之间构成了一个产品等级 ...

  2. 设计模式(三):旅行的角度理解抽象工厂模式

    之前的文章介绍了工厂模式,这篇文章介绍工厂模式的强化版本抽象工厂模式(Abstract Factory Pattern) . 我们知道工厂模式是用于在延迟创建具体的对象,抽象工厂模式可以看作是面向工厂 ...

  3. 简单工厂模式,工厂方法模式,抽象工厂模式总结-java版

    文章目录 LOG:更新日志 一.简单工厂模式,工厂方法模式,抽象工厂模式定义 二.三种工厂模式的优缺点以及适用场景 三.名词解释 四.简单工厂模式.工厂方法模式与抽象工厂模式之间的区别 五.抽象工厂模 ...

  4. 工厂三兄弟之抽象工厂模式

    本文转载自 :http://blog.csdn.net/lovelion/article/details/9319181 工厂方法模式通过引入工厂等级结构,解决了简单工厂模式中工厂类职责太重的问题,但 ...

  5. 设计模式(20):创建型-抽象工厂模式(Abstract Factory)

    设计模式(Design pattern)是一套被反复使用.多数人知晓的.经过分类编目的.代码设计经验的总结.使用设计模式是为了可重用代码.让代码更容易被他人理解.保证代码可靠性. 毫无疑问,设计模式于 ...

  6. 【转载】.NET设计模式之抽象工厂模式(Abstract Factory)

    转载地址:http://www.cnblogs.com/Terrylee/archive/2005/12/13/295965.html 概述 在软件系统中,经常面临着"一系列相互依赖的对象& ...

  7. 抽象工厂模式-Abstract Factory Pattern

    抽象工厂模式-Abstract Factory Pattern 抽象工厂模式(Abstract Factory Pattern):提供一个创建一系列相关或相互依赖对象的接口,而无须指定它们具体的类.抽 ...

  8. 【设计模式】第5章·抽象工厂模式

    一.产品等级和产品族 为了更好的理解抽象工厂模式,引入了两个概念. 1,产品等级结构:产品等级结构即产品的继承结构. 2,产品族:在抽象工厂模式中,产品族是指有同一个工厂生产的位于不同产品等级结构中的 ...

  9. 设计模式系列一创建型之(抽象工厂模式)

    1.抽象工厂简介 在软件系统中,经常面临着"一系列相互依赖的对象"的创建工作:同时由于需求的变化,往往存在着更多系列对象的创建工作. 如何应对这种变化? 如何绕过常规的对象的创建方 ...

最新文章

  1. could not export python function call Remove calls to Python functions before export
  2. 产品经理第一课上海站圆满结束,下一站你定!
  3. CSharpGL(39)GLSL光照示例:鼠标拖动太阳(光源)观察平行光的漫反射和镜面反射效果...
  4. MySQL高级 - SQL优化 - or优化
  5. LNMP服务跨省迁移的解决方案
  6. 每天一道CTF---BUUCTF---练习场----EasySQL1---
  7. 谈谈Runtime类中的freeMemory,totalMemory,maxMemory几个方法
  8. C# 图片、文件等加入Project Resources
  9. Educational Codeforces Round 81 (Rated for Div. 2) C. Obtain The String 序列自动机
  10. [AngularJS] 理解AngularJS Directive中的Scope
  11. java:二分法查找
  12. 汉字笔画数据_中国最生僻的5个汉字,仅仅只有一笔,专家:能认识一个就不错了...
  13. 一种基于annotation的Spring-mvc权限控制方法
  14. powerBI发布到web,管理员权限设置
  15. C++的背影 ——C++之父Bjarne Stroustrup印象(作者:左轻侯)
  16. 基于 Java Spring Security 的关注微信公众号即登录的设计与实现 ya
  17. mysql回表什么意思_什么是MYSQL回表查询
  18. HIVE的搭建配置及关联MySQL
  19. obs无法录屏或无法保存视频的解决方法
  20. 用微信小程序实现视频通话

热门文章

  1. docker 私有库registry+镜像管理平台humpback
  2. 深度学习9-使用强化学习进行股票交易
  3. 基于取消的不完全恢复
  4. 爆笑点名,老师当场气绝身亡!
  5. Oracle数据库 ALERT语句
  6. Windows 下 MinGW-W64 与 CMake 的安装
  7. python解析复杂word_2019年python解析日志-word范文 (15页)
  8. 复合选择器之链接伪类选择器
  9. Pycharm的安装与环境配置
  10. 7-20 电话聊天狂人