设计模式(Design pattern):
设计模式是一套被反复使用、思想成熟、经过分类和无数实战设计经验的总结。
使用设计模式是为了让系统代码可重用、可扩展、可解耦、更容易被人理解且能保证代码的可靠性。
设计模式使代码开发真正工程化;设计模式是软件工程的基石脉络,如同大厦的结构一样。只有夯实地基搭好结构,才能盖好健壮的大楼。
单例模式:
单例就是保证一个类只有一个实例,实现的方法一般是先判断实例是否存在,如果存在直接返回,如果不存在就创建再返回,这就确保了一个类只有一个
实例对象。在javaScript里,单例作为一个命名空间提供者,从全局命名空间里提供一个唯一的访问点来访问对象。
代理模式:
为其他对象提供一种一种代理以控制对这个对象的访问。作用:1.远程代理,即一个对象将不同空间的对象进行局部代理;2.虚拟代理,即根据需要创建
开销很大的对象如渲染网页暂时用占位代替真图;3.安全代理,即控制真实对象的访问权限;4.智能指引,即调用对象代理处理另外一些事情如垃圾回收
机制;注意事项:不能滥用代理,又是徒增代码复杂度;
工厂模式:
工厂模式定义一个用于创建对象的接口,这个接口由子类决定实例化哪一个类。该模式使一个类的实例化延迟到了子类。而子类可以重写接口方法以便
创建的时候指定自己的对象类型。作用:1.对象的构建十分复杂;2.需要依赖具体的环境创建不同实例;3.处理大量具有相同属性的小对象。
构造函数:
构造函数用于创建特定类型的而对象---不仅声明了使用对象,构造函数还可以接受参数以便第一次创建对象的时候设置对象的成员值。 作用:1.用于创
建特定类型的对象;2.第一次声明的时候给对象赋值;3.自己声明构造函数,赋予属性和方法。
建造者模式:
建造者模式可以将一个复杂对象的构建与其表示相分离,使得同样的构建过程可以创建不同的表示。作用:1.分布创建复杂的对象;2.解耦封装过程和
具体创建的组件;3.无需关心组件如何组装。注意事项:1.一定要有一个稳定的算法支持;2.加工工艺是暴露的。
另外还有命令模式,观察者模式,适配器模式,职责链模式,迭代器模式等。