2006年8月22日

Interpreter解释器(行为型模式)

摘要: 动机:  在软件构建过程中,如果某一特定领域的问题比较复杂,类似的模式不断重复出现,如果使用普通的编程方式来实现将面临非常频繁的变化。  在这种情况下,将特定领域的问题表达为某种语法规则下的句子,然后构建一个解释器来解释这样的句子,从而达到解决问题的目的。意图:  给定一个语言,定义它的文法的一种表示,并定义一种解释器,这个解释器使用该表示来解释语言中的句子。  出自:《设计模式》GoFInter... 阅读全文

posted @ 2006-08-22 13:58 walker 阅读(244) 评论(0) 推荐(0) 编辑

Command命令(行为型模式)

摘要: 动机:  在软件构建过程中,“行为请求者”与“行为实现者”通常呈现一种“紧耦合”。但在某些场合--比如需要对行为进行“记录、撤销/重做(Undo/Redo)、事务”等处理,这种无法抵御变化的紧耦合是不合适的。  在这种情况下,如何将“行为请求者”与“行为实现解耦?将一... 阅读全文

posted @ 2006-08-22 13:57 walker 阅读(184) 评论(0) 推荐(0) 编辑

TemplateMethod模板方法(行为型模式)

摘要: 动机:  在软件构建的过程中,对于某一项任务,它常常有稳定的整体操作结构,但各个子步骤却有很多改变的需求,或者由于固有的原因(比如框架与应用之间的关系)而无法和任务的整体结构同时实现。  如何在确定稳定操作结构的前提下,来灵活应对各个子步骤的变化或者晚期实现需求?意图:  定义一个操作中的算法的骨架,而将一些步骤延迟到子类中。Template Method使得子类可以不改变一个算法的结构即可重定义... 阅读全文

posted @ 2006-08-22 13:56 walker 阅读(96) 评论(0) 推荐(0) 编辑

Proxy代理(结构型模式)

摘要: 动机:  在面向对象系统中,有些对象由于某种原因(比如对象创建的开销很大,或者某些操作需要安全控制,或者需要进程外的访问等),直接访问会给使用者、或者系统结构带来很多麻烦。  如何在不失去透明操作对象的同时来管理/控制这些对象特有的复杂性?增加一层间接层是软件开发中常见的解决方式。意图:  为其他对象提供一种代理以控制对这个对象的访问。  出自:《设计模式》GoFProxy模式的几个要点:  1、... 阅读全文

posted @ 2006-08-22 13:55 walker 阅读(131) 评论(0) 推荐(0) 编辑

导航