设计模式
灯塔先生
这个作者很懒,什么都没留下…
展开
-
工厂方法模式
开放--封闭原则 软件实体(类、模板、函数等)应该可以扩展,但是不可修改。 两个特征: 一是对于扩展是开放的;二是对于更改是封闭的。 封闭不可能完全封闭,设计的模块应该可以应对变化,当变化发生时,创造抽象来隔离以后发生的同类变化。 面对需求,对程序的改动是通过增加新代码进行的,不是更改现有的代码。 拒绝不成熟的抽象和抽象本身一样重要。 简单工厂模式 最大的优点:工厂类中包含了必要的逻...原创 2018-07-28 21:15:18 · 157 阅读 · 0 评论 -
装饰模式
应用原创 2018-08-07 11:39:22 · 105 阅读 · 0 评论 -
代理模式
代理模式的应用 例子:追女朋友找人代为送礼物原创 2018-08-07 11:19:48 · 83 阅读 · 0 评论 -
命令模式
命令模式的优点 是否一定要实现命令模式?原创 2018-08-02 16:39:33 · 99 阅读 · 0 评论 -
桥接模式
继承带来的麻烦 例如:大雁和翅膀是部分与整体的关系,是合成关系;每只大雁属于一个雁群,雁群可以有多只大雁,大雁和雁群是聚合关系。 例如:可以让手机按照品牌来分类,也可以按照功能来分类。 实现系统可能有多角度分类,每一种分类都有可能变化,那么就把这种多角度分离出来让他们独立变化,减少他们之间的耦合。 ...原创 2018-08-02 15:50:20 · 91 阅读 · 0 评论 -
策略模式
策略模式的优点原创 2018-08-06 15:11:11 · 119 阅读 · 0 评论 -
观察者模式
又叫做发布-订阅模式 观察者模式的动机 什么时候考虑使用观察者模式 观察者模式的作用(依赖倒转原则的最佳体现) 可以考虑使用接口 观察者模式的不足 1、尽管已经应用了依赖倒转原则,但“抽象通知者”还是依赖“抽象观察者”,没有了抽象观察者的接口,通知的功能就完不成了。 2、每个具体观察者,不一定是“更新”这一方法要调用,不同的组件有不...原创 2018-08-01 15:54:41 · 113 阅读 · 0 评论 -
迭代器模式
使用场合 访问一个聚集对象,不管这些对象是什么,考虑使用迭代器模式。 需要对聚集对象有多种遍历时,考虑用迭代器模式。 .NET的迭代器实现 ...原创 2018-08-01 09:49:20 · 110 阅读 · 0 评论 -
建造者模式
什么时候使用建造者模式 建造者模式的优点原创 2018-08-05 18:40:12 · 119 阅读 · 0 评论 -
外观模式
何时使用外观模式 首先,在设计初期阶段,应该有意识的将不同的两个层分离,在层与层之间建立外观Facade; 其次,在开发阶段,子系统往往因为不断的重构演化而变得越来越复杂,增加外观Facade可以提供一个简单的接口,减少他们之间的依赖; 第三,在维护一个遗留的大型系统时,可能这个系统已经难以维护和扩展了,但有重要的功能,可以为新系统开发一个外观Facade类,来提供设计粗糙获高度复杂...原创 2018-08-05 18:30:20 · 88 阅读 · 0 评论 -
适配器模式
什么时候用? 系统的数据和行为都正确,但接口不符时,应该考虑用适配器,目的是使控制范围之外的一个原有对象与某个接口匹配。 适配器模式主要应用于希望复用一些现存的类,但是接口又与复用环境要求不一致的情况。 (两个类所做的事情相同或相似,但是具有不同的接口时要使用它。客户代码可以统一调用同一接口。 在双方都不太容易修改的时候再使用适配器模式适配。) 在GoF的设计模式中,对适配器...原创 2018-07-31 16:32:09 · 125 阅读 · 0 评论 -
设计模式原则--单一职责、开放-封闭、依赖倒转、里氏代换原则、迪米特法则
如果能想到多于一个的动机去改变一个类,那么这个类就具有多于一个的职责。 软件实体(类、模板、函数等)应该可以扩展,但是不可修改。 两个特征: 一是对于扩展是开放的;二是对于更改是封闭的。 封闭不可能完全封闭,设计的模块应该可以应对变化,当变化发生时,创造抽象来隔离以后发生的同类变化。 面对需求,对程序的改动是通过增加新代码进行的,不是更改现有的代码。 拒绝不成熟的抽象...原创 2018-07-31 11:45:26 · 354 阅读 · 0 评论 -
单例模式
概念 Singleton,保证一个类仅有一个实例,并提供一个访问他的全局访问点。 通常我们可以让一个全局变量使得一个对象被访问,但它不能防止你实例化多个对象。一个最好的方法就是让类自身负责保存它的唯一实例。这个类可以保证没有其他实例可以被创建,并且它可以提供一个访问该实例的方法。 多线程时的单例 问题: 多个线程同时访问Singleton类,调用GetInstance()方法,会可能...原创 2018-07-30 22:19:40 · 131 阅读 · 0 评论 -
模板方法模式
使用场景 模版方法模式特点 通过把不变行为搬移到超类,去除子类中的重复代码来体现它的优势。 即提供了一个很好的代码复用平台。 总结 当不变的和可变的行为在方法的子类实现中混合在一起的时候,不变的行为就会在子类中重复出现。 我们通过模版方法模式把这些行为搬移到单一的地方,这样就帮助子类摆脱重复的不变行为的纠缠。 ...原创 2018-08-04 11:22:33 · 129 阅读 · 0 评论 -
访问者模式
、 访问者模式的目的 访问者模式的优点 访问者模式的缺点 基本代码原创 2018-08-03 15:51:54 · 127 阅读 · 0 评论