1、类的链式调用
1 |
|
返回实例,避免调用多次原型的方法。
2、闭包实现可访问私有变量的类
1 |
|
这样在闭包中创建的构造函数,既是闭包又是可实例对象的函数,可访问到类函数作用域中的变量,如bookName。
3、对象的多继承
1 |
|
4、类的安全模式
1 |
|
当在创建实例没有添加new关键字时,会通过instanceof判断this是否处于Factory原型链上,不是的话,再用new创建实例。
5、单例模式
1 |
|
这种模式可以有效的保护自己的代码不被修改,并且不影响到其他人的代码,非常适合维护,并且也很适合保护静态变量。
6、装饰者模式
1 |
|
装饰者者,再不修改原对象的基础上,通过对其进行包装拓展(添加属性或方法)使原有对象可以满足用户的更复杂需求。
7、享元模式
1 |
|
就是通过创造一个享元类,让其他类继承这个享元类,或者创建一些享元类的实例,从而获得很多具有相同属性、方法的对象。
减少了其他类重写时造成的不必要开销,减少内存被大量占用的可能,避免程序中的数据重复,优化了性能。
8、观察者模式
1 |
|
1 |
|
这种模式又称发布-订阅模式,定义了一种依赖关系,解决了主体对象与观察者之间功能的耦合。通过这种模式,可以解决团队开发中最重要的模块通信问题。这是模块间解耦的一种可行方案。
9、状态模式
1 |
|
状态模式解决了程序中臃肿的分支判断语句问题,将每个分支转化为一种状态独立出来,方便每种状态的管理又不至于每次执行时遍历所有分支。在程序中到底产出哪种行为结果,决定于选择哪种状态。
10、策略模式
1 |
|
这种模式可以实现一些动画的封装、表单验证等功能,其特色是创建一系列策略算法,每组算法处理的业务都是相同的,并且相互独立,只是处理过程和结果不一样,所以它们是互相可以替代的,这样也解决了算法和使用者之间的耦合。
其缺点是,需要使用者充分了解每种算法的实现及功能,增加了使用成本。
11、备忘录模式
1 |
|
这样就能够避免我们在渲染相同数据时反复调接口破坏性能,降低数据获取成本,为将来某个时刻使用或恢复作准备。