摘要: 一、命令模式 将一个请求封装为一个对象,从而让你使用不同的请求把客户端参数化,对请求排队或者记录请求日志,可以提供命令的撤销和恢复功能。 (1)Command类:是一个抽象类,类中对需要执行的命令进行声明,一般来说要对外公布一个execute方法用来执行命令。(2)ConcreteCommand类: 阅读全文
posted @ 2016-12-30 14:13 pinhole 阅读(176) 评论(0) 推荐(0) 编辑
摘要: 一、代理模式 为其他对象提供一种代理以控制对这个对象的访问。 代理模式分为四种: 远程代理:为了一个对象在不同的地址空间提供局部代表。这样可以隐藏一个对象存在于不同地址空间的事实。 虚拟代理:根据需要创建开销很大的对象。通过它来存放实例化需要很长时间的对象。 安全代理:用来控制真实对象访问时的权限。 阅读全文
posted @ 2016-12-30 11:15 pinhole 阅读(241) 评论(0) 推荐(0) 编辑
摘要: 一、享元模式 在一个系统中如果有多个相同的对象,这些对象有部分状态是可以共享的,我们运用共享技术就能有效地支持大量细粒度的对象。 二、例子 举个围棋的例子,围棋的棋盘共有361格,即可放361个棋子。现在要实现一个围棋程序,该怎么办呢?首先要考虑的是棋子棋盘的实现,可以定义一个棋子的类,成员变量包括 阅读全文
posted @ 2016-12-30 10:27 pinhole 阅读(210) 评论(0) 推荐(0) 编辑
摘要: 一、外观模式 外观模式提供了一个统一的接口,用来访问子系统中的一群接口。外观模式定义了一个高层接口,让子系统更容易被使用。 二、UML图 三、例子 举个编译器的例子,假设编译一个程序需要经过四个步骤:词法分析、语法分析、中间代码生成、机器码生成。学过编译都知道,每一步都很复杂。对于编译器这个系统,就 阅读全文
posted @ 2016-12-30 09:50 pinhole 阅读(343) 评论(0) 推荐(0) 编辑
摘要: 一、装饰模式 动态地给一个对象添加额外的职责。就增加功能来说,装饰模式相比生成子类更为灵活。有时我们希望给某个对象而不是整个类添加一些功能。 二、UML图 1.Component(概念中提到的对象接口),也就是“被装饰者”。2.ConcreateComponent(未添加任何职责的,对象接口的子类) 阅读全文
posted @ 2016-12-30 09:41 pinhole 阅读(1032) 评论(0) 推荐(0) 编辑