设计模式(Design pattern) 是解决软件开发某些特定问题而提出的一些解决方案也可以理解成解决问题的一些思路。
- 学习设计模式,有助于写出可复用、可扩展性和可维护性高的程序。
- 设计模式的原则是“找出 程序中变化的地方,并将变化封装起来”,它的关键是意图,而不是结构。
- 不过要注意,使用不当的话,可能会事倍功半。
js中设计模式分类:
单例模式:保证一个类仅有一个实例,并提供一个访问它的全局访问点。策略模式:定义一系列的算法,把它们一个个封装起来,并且使它们可以相互替换。代理模式:为一个对象提供一个代用品或占位符,以便控制对它的访问。迭代器模式:提供一种方法顺序访问一个聚合对象中的各个元素,而又不需要暴露该对象的内部表示。发布—订阅模式:也称作观察者模式,定义了对象间的一种一对多的依赖关系,当一个对象的状态发 生改变时,所有依赖于它的对象都将得到通知。命令模式:用一种松耦合的方式来设计程序,使得请求发送者和请求接收者能够消除彼此之间的耦合关系。组合模式:用小的子对象来构建更大的 对象,而这些小的子对象本身也许是由更小 的“孙对象”构成的。模板方法模式:模板方法模式由两部分结构组成,第一部分是抽象父类,第二部分是具体的实现子类。享元模式:一种用于性能优化的模式,它的目标是尽量减少共享对象的数量。职责链模式:使多个对象都有机会处理请求,从而避免请求的发送者和接收者之间的耦合关系,将这些对象连成一条链,并沿着这条链传递该请求,直到有一个对象处理它为止。中介者模式:所有的相关对象都通过中介者对象来通信,而不是互相引用,所以当一个对象发生改变时,只需要通知中介者对象即可。装饰者模式:以动态地给某个对象添加一些额外的职责,而不会影响从这个类中派生的其他对象。状态模式:事物内部状态的改变往往会带来事物的行为改变。在处理的时候,将这个处理委托给当前的状态对象即可,该状态对象会负责渲染它自身的行为。适配器模式:是解决两个软件实体间的接口不兼容的问题,对不兼容的部分进行适配。外观模式:为子系统中的一组接口提供一个一致的界面,定义一个高层接口,这个接口使子系统更加容易使用。
/*
* 单例模式: 保证一个类仅有一个实例,并提供一个访问它的全局访问点。
* 核心: 确保只有一个实例,并提供全局访问。
*/