一、创建型模式(5):原型、建造者、单例、工厂、抽象工厂。 1.原型模式:建立相应数目的原型并克隆它们通常比每次用合适的状态手工实例化该类更方便。 2.建造者模式:将一个复杂对象的构建与它的表示分离,用同样的构建过程创建不同的产品。 3.单例模式:让类自身负责保存它的唯一实例。这个类可以保证没...
分类:
其他好文 时间:
2015-06-08 23:08:10
阅读次数:
200
最近在学习设计模式,参考《大话设计模式》这一经典书籍,为了加深自己理解,在这比划比划!1.策略模式(Strategy):它定义了算法家族,分别封装起来,让它们之间可以互相替换,此模式让算法的变化,不会影响到使用算法的客户。描述:1)定义一个算法的抽象基类,包含一个公共方法(C++中的纯虚函数); ....
分类:
其他好文 时间:
2015-06-06 13:15:48
阅读次数:
108
声明:本系列博客参考资料《大话设计模式》,作者程杰。
命令模式:在软件系统中,“行为请求者”与“行为实现者”通常呈现一种“紧耦合”。但在某些场合,比如要对行为进行“记录、撤销/重做、事务”等处理,这种无法抵御变化的紧耦合是不合适的。在这种情况下,如何将“行为请求者”与“行为实现者”解耦?将一组行为抽象为对象,实现二者之间的松耦合。这就是命令模式。...
分类:
Web程序 时间:
2015-06-04 21:08:01
阅读次数:
117
男人女人对比示例: 1.Visitor: public abstract class Action { public abstract void GetManConclusion(Man man); public abstract void GetW...
分类:
其他好文 时间:
2015-06-04 15:28:47
阅读次数:
117
音乐解释器示例: 规则: 1).“T"代表演奏速度,”T 1000“表示每节拍一秒,”T 500“表示每节拍半秒; 2).”O“表示音阶,“O1"表示低音,”O2”表示中音,“O3“表示高音; 3).”C D E F G A B”表示“1 2 3 4 5 6 7”; ...
分类:
其他好文 时间:
2015-06-04 13:28:47
阅读次数:
137
声明:本系列博客参考资料《大话设计模式》,作者程杰。
观察者模式(有时又被称为发布-订阅模式)。在此种模式中,一个目标物件管理所有相依于它的观察者物件,并且在它本身的状态改变时主动发出通知。这通常透过呼叫各观察者所提供的方法来实现。此种模式通常被用来实现事件处理系统。
UML类图:
重...
分类:
Web程序 时间:
2015-06-03 23:33:38
阅读次数:
156
网站共享代码示例:1.Flyweight: public abstract class WebSite { public abstract void Use(); }2.ConcreteeFlyweight: public class Concrete...
分类:
其他好文 时间:
2015-06-02 17:09:20
阅读次数:
156
最近翻开之前做过的笔记发现了些很有用的通用的东西,设计模式五大原则或者也可以称为面向对象的五大原则,其实在后续做代码的过程中,潜移默化的在遵循一些原则,对代码的封装性和维护性有很大的启发,笔记在自与之前看大话设计模式时记录的,分享给大家。...
分类:
其他好文 时间:
2015-06-02 00:28:58
阅读次数:
162
设计模式之策略模式
因为是跟工厂模式一同看的策略模式,刚开始还真没发现他们之间的区别。主要是《大话设计模式》书的作者在策略模式中用到了工厂模式。其实工厂模式是实现策略模式的一种方式,而具体策略模式是怎么样的,核心是什么,下面我们可以总结出来:
1、策略模式根本上来说就是封装了算法,不考虑具体实现,只考虑得到结果的模式。因此策略模式又叫算法簇模式,定义不同的算法,并且具体算法之间可以...
分类:
其他好文 时间:
2015-06-01 13:21:39
阅读次数:
107
外国人把那京戏叫做“Beijing Opera ” 没见过那五色的油彩楞往脸上画,四击头一亮相,(哇……)美极了妙极了,简直“ok”顶呱呱 ,蓝脸的多尔敦盗御马,红脸的关公战长沙 ,黄脸的典韦白脸的曹操 ,黑脸的张飞叫喳喳…… ,细心的小朋友,细致区分就会发现,尽管每一个京剧演员都不同,但基本...
分类:
其他好文 时间:
2015-06-01 13:10:15
阅读次数:
127