常见设计模式

为什么有设计模式的概念?
1.设计模式是代码设计经验的总结,为了可重用代码,保证代码的可靠性等.
2.设计模式主要分为三大类型:创建型模式,结构型模式和行为型模式.

1.单例模式

  • 定义:
  • 单件模式确保一个类只有一个实例,并提供一个全局访问点.
  • 使用场景:
  • 用于创建独一无二的,只能有一个实例的对象,单件模式给了我们一个全局的访问点,和全局变量一样方便又没有全局变量的缺点.
  • 把全局变量当成单例来使用容易造成命名污染.
    防止命名空间污染的方法:
  • 使用命名空间
  • 使用闭包封装私有变量

2.构造函数模式

  • 组件,封装,复杂.
  • JavaScript里函数有个原型属性叫prototype,当调用构造函数创建对象的时候,所有该构造函数原型的属性在新创建对象上都可用
  • 构造函数用于创建特定类型的对象,不仅声明了使用的对象,构造函数还可以接受参数。
  • 你可以自定义自己的构造函数,然后在里面声明自定义类型对象的属性或方法.

3.混合模式

  • 为什么使用混合模式实现继承?
    实现对象的继承,我们可以通过对象冒充,也可以通过原型链的方式.
    但是,对象冒充就要求必须使用构造函数方式,而原型链则无法使用构造函数,那么,我们就综合一下,采区混合模式来实现继承.
  • 创建类的最好方式,是用构造函数定义属性,使用原型方式定义方法.这样的机制同样适用于继承机制,用对象冒充来继承构造函数的属性,用原型链继承prototype对象的方法


4.工厂模式

  • 使用场景
  • 创建新对象,且该对象需要被被封装.
    工厂模式通过让子类来决定该创建的对象是什么,来达到将对象创建的过程封装的目的.
    创建对象的方法使用的是继承,用于创建一个产品的实例.

5.模块模式

  • 立即执行函数,直接return结果供外部使用,不污染全局变量

6.发布订阅模式(即观察者模式)

  • 观察者模式又叫发布订阅模式,它定义了一种一对多的关系,让多个观察者对象同时监听某一个主题对象,这个主题对象的状态发生变化时就会通知所有的观察者对象,使得它们能够自动更新自己。
  • 使用观察者模式的好处:
    支持简单的广播通信,自动通知所有已经订阅过的对象。
    页面载入后目标对象很容易与观察者存在一种动态关联,增加了灵活性。
  • 观察者主要让订阅者与发布者解耦,发布者不需要知道哪些模块订阅了这个主题,它只管发布这个主题就可以了,同样订阅者也无需知道那个模块会发布这个主题,它只管订阅这个主题就可以了

参考:

7.发布订阅模式的范例


你可能感兴趣的:(常见设计模式)