摘要: 简单工厂VS工厂方法 计算器的简单工厂方法模式结构图 计算器的工厂方法模式结构图 区别: 简单工厂模式的最大优点在于工厂类中包含了必要的逻辑判断,根据客户端的选择条件动态实例化相关的类,对于客户端来说,去除了与具体产品的依赖。但当我们添加新需求时,比如给计算器增加一个求M数的N次方的功能,就需要修改 阅读全文
posted @ 2019-12-06 14:59 微风吹过165 阅读(140) 评论(0) 推荐(0) 编辑
摘要: 代理模式(Proxy): 为其他对象提供一种代理以控制对这个对象的访问。 追求者代理代码 基本代码 代理模式应用 1. 远程代理,也就是为一个对象在不同的地址空间提供局部代表。这样可以隐藏一个对象存在于不同地址空间的事实。 2. 虚拟代理,是根据需要创建开销很大对象,通过它来存放实例化需要很长时间的 阅读全文
posted @ 2019-12-05 18:31 微风吹过165 阅读(92) 评论(0) 推荐(0) 编辑
摘要: 装饰模式(Decorator): 动态的给一个对象添加一些额外的职责,就增加功能来说,装饰模式比生成子类更为灵活。 当你向旧的类中添加新代码时,一般是为了添加核心职责或主要行为。而当需要加入的仅仅是一些特定情况下才会执行的特定的功能时(简单点就是不是核心应用的功能),就会增加类的复杂度。装饰模式就是 阅读全文
posted @ 2019-12-05 16:08 微风吹过165 阅读(94) 评论(0) 推荐(0) 编辑
摘要: 单一职责原则 单一职责原则(SRP): 就一个类而言,应该仅有一个引起它变化的原因。 如果一个类承担的职责过多,就等于把这些职责耦合在一起,一个职责的变化可能会削弱或者抑制这个类完成其他职责的能力。这种耦合会导致脆弱的设计,当变化发生时,设计会遭受到意想不到的破坏。 软件设计真正要做的许多内容,就是 阅读全文
posted @ 2019-12-04 15:12 微风吹过165 阅读(138) 评论(0) 推荐(0) 编辑
摘要: 面向对象的编程,并不是类越多越好,类的划分是为了封装,但分类的基础是抽象,具有相同属性和功能的对象的抽象集合才是类。 商场收银软件的简单工厂实现 商场促销程序简单工厂UML图 include include using namespace std; //Strategy类,定义所有支持的算法的公共接 阅读全文
posted @ 2019-12-04 13:15 微风吹过165 阅读(145) 评论(0) 推荐(0) 编辑
摘要: 之前一直想学习一下设计模式,听说《大话设计模式》这本书讲的比较通俗易懂,正好现在有时间就学习一下,写个博客记录一下自己的学习感悟!! 1.简单加减乘除计算器实现 计算器程序工厂模式UML图 include using namespace std; / Operation操作类 / class Ope 阅读全文
posted @ 2019-12-04 13:08 微风吹过165 阅读(86) 评论(0) 推荐(0) 编辑