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