基本的设计模式介绍--创建型模式

119 阅读3分钟

设计模式概述

设计模式是对软件设计开发过程中反复出现的某类问题的通用解决方案。设计模式更多的时指导思维和方法论,而不是现成的代码。学习设计模式可以学习理解各种模式的内在思想和解决的问题。

设计模式可以分为三大类:

  • 1.创建型模式:处理对象的创建,根据实际情况使用合适的方式创建对象。
  • 2.结构型模式:通过识别系统中组件间的简单关系来简化系统的设计。
  • 3.行为型模式:用于识别对象之间常见的交互模式并加以实现,因此,增加了这些交互的灵活性

前端开发人员需要了解的设计模式

创建型模式

创建型模式就是用来创建实例化对象的

工厂模式

工厂模式就是有一个工厂对象决定创建哪一种产品类的实例。如下图创建了一个简单的工厂模式:

img1.png 输出结果如下:

img2.png

使用工厂模式之后,不再需要重复引入一个个的构造函数,只需要引入工厂对象就可以方便的创建各类对象。

单例模式

什么是单例?单例指的是创建的总是同一个实例,也就是使用类创建的实例始终是相同的。我们先看下面一段代码:

img3.png

通过上方的代码我们能发现,我们定义一个Person类,通过这个类创建了两个实例,但是我们可以看到我们创建的这两个实例是不相等的,也就是说,通过同一个类得到的实例不是同一个,但如果我们想始终得到的都是同一个实例,那么就需要单例模式。

想要实现单例模式,我们需要注意两点:

1.需要使用return。使用new的时候如果没有手动设置return,那么会默认的返回this。但是我们需要让每次返回的实例相同,也就是需要手动控制创建的对象,因此我们就需要用到return了

2.我们需要每次return的都是同一个对象。也就是说我们第一次创建实例的时候,需要把这个实例保存起来,让下一个实例的对象能够通过return接收到这个保存的实例。因此我们需要用到闭包的思想。如下图代码所示:

img4.png

从上面的代码中,我们可以看到在闭包中,使用isshow变量来保存创建的实例,每次返回都是第一次创建的实例。所以这样我们无论创建多少次实例,创建的都是同一个实例,这就是单例模式。

单例模式应用场景:

1.网站上的计数器,为了同步计数器一般都会用单例模式来实现

2.Web应用的配置对象一般也是用的单例模式,因为这些配置对象都是共享的资源

原型模式

原型模式:使用原型实例指定创建对象的种类,并且通过拷贝这些原型创建新的对象

最简单的原型模式的实现就是通过Object.create()。Object.create()会使用现有的对象来提供新创建对象的_proto_。例如下方代码:

img5.png

img6.png

我们可以看到在此对象的原型上有person定义的属性。这就是简单的原型模式

原型模式的应用场景一般是在课程表、购物车等每次需要重复编写的东西,这时候就可以利用原型模式来优化。