标签:
定义:设计模式实际上是一套被反复使用,思想成熟,经过分类和无数实践设计经验的总结。
设计模式存在的根本原因是为了代码复用,增加可维护性。有如下原则:
1、开闭原则:对扩展开放,对修改关闭。
2、里氏转换原则:子类继承父类,单独调完全可以运行。
3、依赖倒转原则:引用一个对象,如果这个对象有底层类型,直接引用底层类型。
4、接口隔离原则:每一个接口应该是一种角色。
5、合成/聚合复用原则:新的对象应使用一些已有的对象,使之成为新对象的一部分。
6、迪米特原则:一个对象应对其他对象有尽可能少的了解。
模式分类:
1、单列模式:单例就是保证一个类只有一个实例,实现的方法一般是先判断实例存在与否,如果存在直接返回,若不存在就创建了再返回,这就是确保一个类只有一个实例对象。在javascript里,单例作为一个命名空间提供者,从全局命名里提供一个唯一的访问点来访问该对象。
作用:
(1)模块间通信;
(2)系统中某一个类的对象只能存在一个;
(3)保护自己的属性和方法。
注意事项:
(1)注意this使用;
(2)闭包容易造成内存泄漏,不需要的干掉;
(3)注意new的成本(继承)。
2、构造函数模式:构造函数用于创建特定类型的对象——不仅声明了使用的对象,构造函数还可以接收参数以便第一次创建对象的时候设置对象的成员值。你可以自定义自己的构造函数然后在里面声明自定义类型对象的属性或方法。
在js里面,构造函数通常是认为用来实现实例的,js没有类的概念,但是有特殊的构造函数。通过new关键字来调用自定义的构造函数,在构造函数内部,this关键字引用的是新创建的对象。
作用:
(1)用于创建特定类型的对象;
(2)第一次声明的时候给对象赋值;
(3)自己声明构造函数,赋予属性和方法。
注意事项:
(1)声明函数的时候处理业务逻辑;
(2)区分和单例的区别,配合单列实现初始化;
(3)构造函数大写字母开头。(建议)
(4)注意new的成本。(继承)
推荐网站(讲的很详细很具体)http://www.admin10000.com/document/1085.html
标签:
原文地址:http://www.cnblogs.com/weilantiankong/p/4720420.html