定义
在不破坏封装性的前提下,捕获一个对象的内部状态,并在该对象之外保存这个状态。这样以后就可将该对象恢复到原先保存的状态。
结构图:
Originator(发起人):负责创建一个备忘录Memento,用以记录当前时刻它的内部状态,并可使用备忘录恢复内部状态。Originator可根据需要决定Memento存储Originator的哪些内部状态。
Memento(备忘录):负责...
分类:
其他好文 时间:
2014-07-28 16:32:33
阅读次数:
369
定义:用一个中介对象来封装一系列的对象交互。中介者使各对象不需要显式地相互引用,从而使其耦合松散,而且可以独立地改变它们之间的交互。
适用地方:中介者模式一般应用于一组对象以定义良好但是复杂的方式进行通信的场合以及想定制一个分布在多个类中的行为,而又不想生成太多的子类的场合。
优点:中介者的出现减少了各个对象的耦合,使得可以独立地改变和复用各个对象类和中介类,比如任何国家的改变不会影响...
分类:
其他好文 时间:
2014-07-27 11:25:32
阅读次数:
187
定义:给定一个语言,定义它的文法的一种表示,并定义一个解释器,这个解释器使用该表示来解释语言中的句子。
适用地:当有一个语言需要解释执行,并且你可将该语言中的句子表示为一个抽象语法树时,可使用解释器模式。如果一种特定类型的问题发生的频率足够高,那么可能就值得将该问题的各个实例表述为一个简单语言中的句子。这样就可以构建一个解释器,该解释器通过解释这些句子来解决该问题。像正则表达式、浏览器应...
分类:
其他好文 时间:
2014-07-27 11:25:22
阅读次数:
198
用XMLHttpRequest对象,发请求的基本代码如下:var xmlhttp=new XMLHttpRequest(); var url="http://localhost:3004/test"; xmlhttp.open("get",...
分类:
Web程序 时间:
2014-07-27 10:33:42
阅读次数:
950
(function(){ var jQuery = function( ) {return new jQuery.init( );}; //1jQuery.prototype = { init:function(){}, fx:function(){ alert('这是类库的一个实例化...
分类:
Web程序 时间:
2014-07-26 14:06:55
阅读次数:
232
??
下面说说适配器模式:
定义:将一个类的接口转换成客户希望的另一个接口。Adapter模式使得原本由于接口不兼容而不能一起工作的那些类可以一起工作。
适用地方:在软件开发中,也就是系统的数据和行为都正确,但接口不符时,我们应该考虑用适配器,目的是使控制范围之外的一个原有对象与某个接口匹配。适配器模式主要应用于希望复用一些现存的类,但是接口又与复用环境要求不一致的情况。
注意:要在双方都...
分类:
其他好文 时间:
2014-07-25 11:10:41
阅读次数:
201
??
昨天探讨了访问者模式,今天来说说桥接模式:
定义:将抽象部分与它的实现部分分离,是它们可以独立地变化。
这并不是说,让抽象类与其派生类分离,因为这没有任何意义。实现指的是抽象类和它的派生类用来实现自己的对象。
理解:实现系统可能有多角度分类,每一种分类都有可能变化,那么就把这种多角度分离出来让它们独立变化,减少它们之间的耦合。
下面讲一下合成/聚合复用原则:
合成/聚合复用原则就...
分类:
其他好文 时间:
2014-07-25 11:10:31
阅读次数:
229
前言 这几天做了一个应用程序,给项目添加的一个功能。一直想用什么模式来写,基本代码都写完了,还是没有用到模式,前天晚上睡觉中突然觉得就是简单工厂模式,于是代码已经浮现出来。昨天去了公司开始写。过程 这是简单工厂类图:(图是从网上自己弄的) 《大话设计模式》中,这个简单工厂模式,那个基接口是一个类,....
分类:
其他好文 时间:
2014-07-24 05:02:28
阅读次数:
211
1.3.4 设计并发友好的应用程序
使用传统的命令风格编写多线程应用程序时,我们要面对两个问题:
■很难让现有的顺序代码变成并行的代码,因为要显式使用线程,必须修改大部分的基本代码。
■使用共享状态和锁定是困难的。必须仔细考虑如何使用锁来避免争用条件和死锁,留下足够的空间并行执行。
函数式编程给了我们答案:
■使用声明编式程风格时,可以在现有的代码中引入并行。替换很少几个基元,就能...
分类:
其他好文 时间:
2014-07-23 00:12:17
阅读次数:
229
堆(heap) 代码(C)本文地址: http://blog.csdn.net/caroline_wendy堆(heap)作为二叉树的重要应用, 时间复杂度O(logn), 需要熟练的写出其代码, 基本代码如下, 需要背写.代码:/*
* main.cpp
*
* Created on: 2014.7.20
* Author: spike
*/
/*eclipse cdt,...
分类:
其他好文 时间:
2014-07-21 11:47:44
阅读次数:
223