iis服务器助手广告广告
返回顶部
首页 > 资讯 > 前端开发 > VUE >es6工厂模式怎么实现
  • 918
分享到

es6工厂模式怎么实现

2024-04-02 19:04:59 918人浏览 八月长安
摘要

本篇内容介绍了“es6工厂模式怎么实现”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!

本篇内容介绍了“es6工厂模式怎么实现”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!

es6有工厂模式;工厂模式将逻辑封装到一个函数中,在es6中可以不使用构造函数创建对象,而使用class配合static关键字将简单工厂封装到User类的静态方法中,语法为“class User{构造器}static 静态方法(){}”。

教程操作环境:windows10系统、ECMAScript 6.0版、Dell G3电脑。

es6有工厂模式吗

ES6中给我们提供了class新语法,虽然class本质上是一颗语法糖,并也没有改变javascript是使用原型继承的语言,但是确实让对象的创建和继承的过程变得更加的清晰和易读。下面我们使用ES6的新语法来重写上面的例子。

ES6重写简单工厂模式

使用ES6重写简单工厂模式时,我们不再使用构造函数创建对象,而是使用class的新语法,并使用static关键字将简单工厂封装到User类的静态方法中:

//User类
class User {
  //构造器
  constructor(opt) {
    this.name = opt.name;
    this.viewPage = opt.viewPage;
  }
  //静态方法
  static getInstance(role) {
    switch (role) {
      case 'superAdmin':
      return new User({ name: '超级管理员', viewPage: ['首页', '通讯录', '发现页', '应用数据', '权限管理'] });
        break;
      case 'admin':
        return new User({ name: '管理员', viewPage: ['首页', '通讯录', '发现页', '应用数据'] });
        break;
      case 'user':
        return new User({ name: '普通用户', viewPage: ['首页', '通讯录', '发现页'] });
        break;
      default:
        throw new Error('参数错误, 可选参数:superAdmin、admin、user')
    }
  }
}

//调用
let superAdmin = User.getInstance('superAdmin');
let admin = User.getInstance('admin');
let nORMalUser = User.getInstance('user');

工厂模式是最常见的一种开发模式,将new操作单独封装,当遇到new是应考虑工厂模式。创建对象,不暴露代码逻辑,把逻辑写到函数里面。这个函数就是工厂模式。优点,简单。   缺点就是,每增加构造函数,都要修改函数里面的代码逻辑。

工厂模式是用来创建对象的一种最常用的设计模式。我们不暴露创建对象的具体逻辑,而是将将逻辑封装在一个函数中,那么这个函数就可以被视为一个工厂。工厂模式根据抽象程度的不同可以分为:简单工厂,工厂方法和抽象工厂。

如果只接触过JavaScript这门语言的的人可能会对抽象这个词的概念有点模糊,因为JavaScript一直将abstract作为保留字而没有去实现它。如果不能很好的理解抽象的概念,那么就很难理解工厂模式中的三种方法的异同。所以,我们先以一个场景去简单的讲述一下抽象和工厂的概念。

简单工厂模式又叫静态工厂模式,由一个工厂对象决定创建某一种产品对象类的实例。主要用来创建同一类对象。

在实际的项目中,我们常常需要根据用户的权限来渲染不同的页面,高级权限的用户所拥有的页面有些是无法被低级权限的用户所查看。所以我们可以在不同权限等级用户的构造函数中,保存该用户能够看到的页面。在根据权限实例化用户。

代码如下:

class SuperAdmin{
  constructor(){
    this.name = "超级管理员";
    this.viewPage = ['首页', '通讯录', '发现页', '应用数据', '权限管理'];
  }
}
class Admin{
  constructor(){
    this.name = "管理员";
    this.viewPage = ['首页', '通讯录', '发现页', '应用数据', '权限管理'];
  }
}
class NormalUser{
  constructor(){
    this.name = "普通用户";
    this.viewPage = ['首页', '通讯录', '发现页', '应用数据', '权限管理'];
  }
}
//工厂方法类
class UserFactory {
  getFactory(role){
   switch (role) {
     case 'superAdmin':
       return new SuperAdmin();
       break;
     case 'admin':
       return new Admin();
       break;
     case 'user':
       return new NormalUser();
       break;
     default:
       throw new Error('参数错误, 可选参数:superAdmin、admin、user');
   }
  }
 }
 
//调用
let uesr =new UserFactory();
uesr.getFactory('superAdmin');
uesr.getFactory('admin');
uesr.getFactory('user');

简单工厂的优点在于,你只需要一个正确的参数,就可以获取到你所需要的对象,而无需知道其创建的具体细节。但是在函数内包含了所有对象的创建逻辑(构造函数)和判断逻辑的代码,每增加新的构造函数还需要修改判断逻辑代码。

当我们的对象不是上面的3个而是30个或更多时,这个函数会成为一个庞大的超级函数,便得难以维护。

所以,简单工厂只能作用于 创建的对象数量较少,对象的创建逻辑不复杂时使用。

“es6工厂模式怎么实现”的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识可以关注编程网网站,小编将为大家输出更多高质量的实用文章!

--结束END--

本文标题: es6工厂模式怎么实现

本文链接: https://www.lsjlt.com/news/97687.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • es6工厂模式怎么实现
    本篇内容介绍了“es6工厂模式怎么实现”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成! ...
    99+
    2024-04-02
  • golang工厂模式怎么实现
    在Golang中,工厂模式可以通过使用接口和结构体来实现。下面是一个简单的例子:首先,定义一个接口,表示产品的抽象:gotype P...
    99+
    2023-10-20
    golang
  • JavaScript中怎么实现工厂模式
    本篇文章为大家展示了JavaScript中怎么实现工厂模式,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。什么是工厂模式工厂模式是用来创建对象的一种最常用的设计模式。...
    99+
    2024-04-02
  • java的工厂模式怎么实现
    在Java中,工厂模式可以通过两种方式来实现:简单工厂模式和抽象工厂模式。 简单工厂模式: 简单工厂模式的核心是定义一个工厂类,该类...
    99+
    2024-02-29
    java
  • Java简单工厂,工厂方法,抽象工厂模式怎么实现
    这篇文章主要讲解了“Java简单工厂,工厂方法,抽象工厂模式怎么实现”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Java简单工厂,工厂方法,抽象工厂模式怎么实现”吧!1、简单工厂模式1.定...
    99+
    2023-06-29
  • golang实现工厂模式
    Go语言是一门非常流行的静态编译型语言,其独特的语法和特性使其在很多场景下都具有很好的应用能力。其中,工厂模式是Go语言中非常常见的设计模式之一。本文将介绍如何用Go语言实现工厂模式。工厂模式简介工厂模式是一种常见的创建型模式,它通过定义一...
    99+
    2023-05-15
  • java怎样实现工厂模式
    这篇文章将为大家详细讲解有关java怎样实现工厂模式,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。定义:工厂模式是 Java 中最常用的设计模式之一。这种类型的设计模式属于创建型模式,它提供了一种创建对象...
    99+
    2023-05-30
    java
  • PHP设计模式之工厂模式怎么实现
    在PHP中,工厂模式可以通过以下步骤来实现:1. 创建一个接口或抽象类,定义工厂所要创建的对象的公共方法。```phpinterfa...
    99+
    2023-08-14
    PHP
  • Java设计模式的工厂模式怎么实现
    本篇内容介绍了“Java设计模式的工厂模式怎么实现”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!工厂模式在Java应用程序中对象无处不在,这...
    99+
    2023-06-29
  • C++中的工厂模式怎么实现
    这篇文章主要讲解了“C++中的工厂模式怎么实现”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“C++中的工厂模式怎么实现”吧!工厂模式中使用了多态的原理,来将具体实现和接口进行有效的解耦合,符...
    99+
    2023-06-04
  • java简单工厂模式怎么实现
    在Java中,简单工厂模式可以通过以下步骤实现:1. 首先创建一个接口,表示产品的抽象类,其中定义了产品的一些共同的方法。```ja...
    99+
    2023-08-18
    java
  • java抽象工厂模式怎么实现
    本篇内容介绍了“java抽象工厂模式怎么实现”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!抽象工厂只实现了一个 createHum...
    99+
    2023-06-19
  • Python怎么实现抽象工厂模式
    这篇文章主要介绍“Python怎么实现抽象工厂模式”,在日常操作中,相信很多人在Python怎么实现抽象工厂模式问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”Python怎么实现抽象工厂模式”的疑惑有所帮助!...
    99+
    2023-06-19
  • Java工厂方法模式怎么实现
    这篇文章主要讲解了“Java工厂方法模式怎么实现”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Java工厂方法模式怎么实现”吧!一、什么是工厂方法模式?工厂方法模式:也叫虚拟构造器模式或者多...
    99+
    2023-06-29
  • Python中怎样实现工厂模式
    本篇文章给大家分享的是有关Python中怎样实现工厂模式,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。如下是工厂方法的实现,里面用到了字典来做键值的映射。#!/usr/bin/...
    99+
    2023-06-04
  • golang工厂模式实现代码怎么写
    package main import ( “fmt” ) // 定义接口 type Product interface { Use...
    99+
    2024-02-29
    golang
  • .Net设计模式之抽象工厂模式怎么实现
    这篇文章主要讲解了“.Net设计模式之抽象工厂模式怎么实现”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“.Net设计模式之抽象工厂模式怎么实现”吧!一、动机(Motivation)在软件系统...
    99+
    2023-06-30
  • C#实现简单工厂模式
    情景:有一个怪兽,HP是100,现在勇士有可以使用武器将其打败,有三种武器,木剑每次打击20血,铁剑每次50血,金刚剑每次100血,如果想要使用简单工厂方式,怎么设计? 一.啥是简单...
    99+
    2024-04-02
  • C#实现工厂方法模式
    场景:简单工厂时候,我设计了一个场景,有三种剑去打怪,这时候,需求变化了,我三种剑变成了,匕首、剑以及木棒,想要用工厂方法来实现,怎么弄? 1.上文讲过简单工厂模式,它的最大优点在于...
    99+
    2024-04-02
  • PHP如何实现工厂模式
    在PHP中实现工厂模式,可以按照以下步骤进行:1. 定义一个接口或者抽象类,作为产品的基类,包含产品的共同属性和方法。2. 创建具体...
    99+
    2023-08-24
    PHP
软考高级职称资格查询
推荐阅读
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作