关于我们 RRS sitemaps 网站地图

首页 > SEO基础 > SEO优化 > 正文

SEM论坛

你需要了解的23种JavaScript设计模式

2019-06-30 22:31:08 |  评论:0  |  点击:  |  SEM论坛

为什么要学习设计模式? 在许多访谈中,你可能会遇到很多面向对象编程中的接口,抽象类,代理和以及其他与设计模式相关的问题。 一旦了解了设计模式,它会让你轻松应对任何访谈,并可以在你的项目中应用这些特性。在应用程序中实现设计模式已经得到验证和测

为什么要学习设计模式?
 

在许多访谈中,你可能会遇到很多面向对象编程中的接口,抽象类,代理和以及其他与设计模式相关的问题。 一旦了解了设计模式,它会让你轻松应对任何访谈,并可以在你的项目中应用这些特性。在应用程序中实现设计模式已经得到验证和测试。
 

为了使应用程序具有可扩展性,可靠性和易维护性,应该编写符合设计模式的代码。
 

什么是设计模式。
 

设计模式是我们每天编程遇到的问题的可重用解决方案。
 

设计模式主要是为了解决对象的生成和整合问题。
 

换句话说,设计模式可以作为可应用于现实世界编程问题的模板。
 

设计模式的发展历史
 

设计模式的概念是由四人帮(《设计模式(可复用面向对象软件的基础)》的四位作者)提出。
 

四人帮把这本书分成两部分:
 

第一部分解释面向对象编程的优缺点。
 

第二部分是关于 23 个经典设计模式的演变。
 

自提出设计模式概念后,四人帮设计模式在软件开发生命周期中发挥了重要作用。
 

设计模式分类
 

根据实际应用中遇到的不同问题,四人帮将设计模式分为三种类型。
 

创建型模式

结构型模式

行为型模式
 

接下来将概述属于这三种类型的 23 种设计模式的主要概念。
 

创建型模式
 

这类模式用于对象的生成和生命周期的管理。
 

创造模式可以决定生成哪些对象,提高了程序的灵活性。模式如下:

抽象工厂模式

生成器模式

工厂方法模式

单例模式

原型模式
 

JavaScript 抽象工厂模式
 

抽象工厂模式究竟是什么?

它就像一个工厂,但一切都被封装起来:

提供对象的方法

构建对象的工厂

最终的对象
 

最终对象包含使用策略模式的对象
 

策略模式只是使用组合的方式,换句话说,它的类字段实际上是对象本身。
 

抽象工厂的用处?

抽象工厂模式可以创建类簇类的对象,而不需要指定具体的类,这使得抽象工厂很灵活。

通过抽象工厂模式可以对任何类簇对象进行建模并通过统一的接口供外部对象使用。

抽象工厂唯一不好的地方是它可能变得非常复杂。
 

JavaScript 的生成器模式(Builder 模式)
 

Builder 模式是什么?
 

Builder 模式是一种用于创建由其他对象组合构成的对象的模式。创建部件的方法应该独立于主对象。另外,为了从业务方隐藏部件的创建细节,两者是相互独立的。

在使用生成器模式时,生成器知道所有的细节,且创建细节完全对其他相关类屏蔽。
 

JavaScript 工厂方法模式
 

什么是工厂方法模式?
 

根据定义,只要想一个方法返回公共超类的几个可能的类中的一个,就可以使用工厂模式。
 

假设我想随机向屏幕上射击敌人。那么如果所有东西都硬编码好了,并且不知道敌人的具体类型会让处理变得很困难。
 

但是,假设我创建了一个随机数生成器,每个可能的敌人类都由一个数字代替,并可以由该随机数生成器返回。
 

然后可以将这个数字发送给工厂对象,这样可以返回一个动态创建的敌人。
 

所以,MOL 的主要概念非常重要,我们希望能够在运行时选择类,这就是工厂模式能够提供的。
 

何时使用工厂方法模式?
 

当不知道需要何种类型的对象时可以使用工厂方法模式。
 

但是,有一点需要注意,确保所有潜在的类都具有相同的子类层次结构,这意味着在继承路径上有相同的父类。
 

可以使用工厂模式来集中类别选择的代码。或是不希望用户知道每一个可能的子类时。
 

JavaScript 单例模式
 

什么是单例模式?
 

当想要避免实例化多个对象时使用单例模式。单例使得只能从类实例化一个对象。
 

现在你可能会问自己,我什么时候会想要这样做? 其实,有很多场景。
 

关键字: