Justin’s Blog

Web developer, I love this game.

设计模式,学习笔记,二

November 13th, 2007 by Justin

上周5、6、7都参加了设计模式的培训,3天有点量大了。其实是只起到了提纲挈领,开阔思路,阐明概念的作用。我还没有深入理解设计模式。

好了,说说程序设计的思想吧。

抽象于实现分离。在设计系统的时候,通过对角色、职责的抽象,根据业务逻辑,规划属性和行为。遵循几个基本的原则:但职责原则,松偶合原则,依赖接口不依赖实现。联想一下,这好比UCD中的用户流程–》site map–》线框图,有些类似,自顶向下的设计。

利用好面向对象语言中的多态。所谓多态,

var a = new o1();
fucntion x(obj){
obj.do();
}
x(a);
o1可以是一系列的有相同接口的类,他们的实例可以用相同的方法调用,在系统运行时,动态的决定哪个需要对象,以完成不同的工作。

观察者模式,专门的一个对象,侦听某个条件,条件改变则做出响应,调用其他对象做出相应改变。

状态模式:把每个状态做为一个对象。有一个状态调用者,也是对象。那么现在设置一个初始状态对象。之后,客户不需要切换状态,直接调用状态执行行为,状态的切换由状态对象自己来切换。其实也是利用了多态。

命令模式:动态绑定的时候,用命令的模式,例如用户键盘输入的字符串,系统生成的字符串等。也可以是直接以对象为命令。

 另有中介者、代理、门面模式。我觉得都可以归结为中间件,只是职责不同。

其实很多我们在我们自己写的代码中都存在,但是没有做动态绑定,没有做单职责。这个在团队开发的时候,带来了麻烦。A要理解B写的代码变得很困难,如果采用单职责的原则,并且使用公认的设计模式,让后人更加容易理解代码,更加容易维护、扩展。代码即是文档。


Posted in Web Development

Leave a Reply