摘要: TemplateMethod封装算法结构,支持算法子步骤变化Strategy注重封装算法,支持算法的变化State注重封装与状态相关的行为,支持状态的变化Memento注重封装对象状态变化,支持状态保存/恢复Mediator注重封装对象间的交互,支持对象交互的变化ChainOfReponsibility注重封装对象责任,支持责任的变化Command注重将请求封装为对象,支持请求的变化Iterator注重封装集合对象内部结构,支持集合的变化Interpreter注重封装特定领域变化,支持领域问题的频繁变化Observer注重封装对象通知,支持通信对象的变化Visitor注重封装对象操作变化,支持 阅读全文
posted @ 2011-03-24 22:18 山之松 阅读(110) 评论(0) 推荐(0) 编辑
摘要: Facade注重简化接口,简化组件系统与外部客户程序的依赖关系。Adapter 注重转化接口,将不吻合的接口适配对接。Bridge 注重分离接口与其实现,支持多维度变化。Decorator 注重稳定接口,在此前提下为对象扩展功能。FlyWeight注重保留接口,在内部使用共享技术对对象存储进行优化。Proxy注重假借接口,增加间接层来实现灵活控制。Composite注重统一接口,将“一对多”的关系转化为“一对一”的关系。 阅读全文
posted @ 2011-03-24 21:56 山之松 阅读(124) 评论(0) 推荐(0) 编辑
摘要: AbstractFactory和Builder都是创建一个组合对象,让组合对象可以有不同的表示,区别在于创建组合对象过程的复杂度。当只是简单的组合时,用AbstractFactory;当是一个复杂的组合时,用Builder;总结成三个字:复杂度。FactoryMethod和Prototype都是创建个别对象,并延迟到子类。FactoryMethod 用于个别对象只使用少数几次时。Prototype用于个别对象使用多次时。总结成三个字:重用度。AbstractFactory用于"系列对象"的创建。构建过程简单,表示不断变化。Builder用于"部分对象"的 阅读全文
posted @ 2011-03-24 21:51 山之松 阅读(78) 评论(0) 推荐(0) 编辑
摘要: 三大基本面向对象的原则:1.封装变化。2.多用组合,少用继承。3.针对接口编程,不针对实现编程。单一职责原则(SRP):一个类应该仅有一个引起它变化的原因。开放关闭原则(OCP):类模块应该是可扩展的,但是不可修改(对扩展开放,对修改关闭)。Liskov替换原则(LSP): 子类必须能够替换它们的基类。依赖倒置原则(DIP):依赖抽象,不要依赖具体类。高层模块不应该依赖于低层模块, 二者都应该依赖于抽象。抽象不应该依赖于实现细节,实现细节应该依赖于抽象。接口隔离原则(ISP): 不应该强迫客户程序依赖于它们不用的方法。 阅读全文
posted @ 2011-03-24 21:36 山之松 阅读(112) 评论(0) 推荐(0) 编辑
摘要: 如果你了解了js面向对象,HTTP协议,那么就自己动手写一个AJAX框架就可以了。小技术,大家不要笑啊!源码:(注释就不写了,应该不难看懂的)var ajax = { _params: null, _callback: null, _xhr: null, _createXHR: function () { if (window.ActiveXObject) { _xhr = new ActiveXObject("Microsoft.XMLHTTP"); //IE } else if (window.XMLHttpRequest) { _xhr = new XMLHttpRe 阅读全文
posted @ 2011-03-17 13:28 山之松 阅读(207) 评论(0) 推荐(0) 编辑