美文网首页javascript设计模式笔记
JavaScript进阶:简单工厂模式

JavaScript进阶:简单工厂模式

作者: 听书先生 | 来源:发表于2022-01-18 16:27 被阅读0次
1、前言

工厂模式顾名思义是开发者不需要去关注一些基类的实现方式,只需要知道工厂类就行。然后开发者这个工厂类去自行的开发自己需要的对象。这种叫做工厂函数也就是最简单的工厂模式。

这种模式主要应用于数据应用的模块结构类似,比如:注册,登录模块。
测试用例创建两个类,一个打印类,一个运算符操作类,

  • 创建一个打印类Print:
    打印类中有属性operator以及函数方法printFun
// 创建一个打印类
const Print = function(num1, num2) {
    this.operator = '打印数据';
    this.printFun = function() {
        return `打印${num1}以及${num2}数据`;
    }
}
  • 创建运算符操作类Operate :
    Operate类中operateFun 方法通过接收操作类型也就是type的值,用来返回不同运算操作的值出去。
// 创建一个运算操作类
const Operate = function(num1, num2) {
    this.operator = '运算符操作';
    this.operateFun = function(type) {
        switch(type) {
            case '+':
                return num1 + num2;
                break;
            case '-':
                return num1 - num2;
                break;
            case '*':
                return num1 * num2;
                break;
            case '/':
                return num1 / num2;
                break;
        }
        
    }
}
  • 创建工厂类createFactory :
// 简单工厂模式
const createFactory = function(name, num1, num2) {
    switch (name){
        case 'print':
            // 返回一个打印类的对象实例
            return new Print(num1, num2);
            break;
        case 'operate':
            // 返回一个运算类的对象实例
            return new Operate(num1, num2);
            break;
        default:
            break;
    }
}

这个工厂类都是对传入的num1和num2两个数据进行不同逻辑的处理

  • 使用prototype原型链去拓展自行需要的方法:
    原本的打印类只是单纯的打印出来了数据,现在我的需求是想通过弹出层弹出数据,就可以通过如下代码实现。
// 拓展
Print.prototype.alertFun = function(num1, num2) {
    alert(`弹出${num1}、${num2}数据!`)
}
  • 创建工厂模式中的基类实例对象:
// 开始使用
const obj1 = new createFactory('print', 10, 3);
const printMsg = obj1.printFun();
obj1.alertFun(1, 2);
console.log(printMsg);

const obj2 = new createFactory('operate', 15, 4);
const result = obj2.operateFun('*');
console.log(result);
图1.png
图2.png

相关文章

  • JavaScript进阶:简单工厂模式

    1、前言 工厂模式顾名思义是开发者不需要去关注一些基类的实现方式,只需要知道工厂类就行。然后开发者这个工厂类去自行...

  • 工厂模式

    简介:工厂模式大体分为 简单工厂,工厂方法,抽象工厂等三种模式。工厂方法模式也可以称为工厂模式。简单工厂进阶变成工...

  • 简单工厂模式

    Android进阶之设计模式 简单工厂模式 简单工厂模式(又叫作静态工厂方法模式), 其属于创建型设计模式,但并不...

  • JavaScript设计模式——工厂模式

    前言 今天开始学习JavaScript设计模式,每天学一点,希望有所收获。今天主要学习工厂模式,包括:简单工厂模式...

  • [Android]三种工厂模式总结。

    Android中,工厂模式分为三种:简单工厂模式、工厂方法模式、抽象工厂模式。 一.简单工厂模式。 定义:简单工厂...

  • 设计模式-工厂模式

    设计模式1 设计模式2 工厂模式 工厂模式可简单的分为三类:简单工厂,工厂方法,抽象工厂 简单工厂模式 定义 简单...

  • 工厂模式

    工厂模式包含三种模式:简单工厂模式、工厂方法模式和抽象工厂模式。 简单工厂模式 定义简单工厂模式:由一个工厂类根据...

  • Java设计模式——工厂模式

    工厂模式简单工厂模式工厂方法模式抽象工厂模式 1.简单工厂模式 1.基本介绍1)简单工厂模式也叫静态工厂模式,是属...

  • iOS设计模式-工厂模式

    工厂模式分为简单工厂模式,工厂模式、抽象工厂模式三类。 简单工厂模式 1. 定义 简单工厂模式并不是常用的设计模式...

  • Javascript基础进阶(八)工厂模式

    设计模式 什么是设计模式? 设计模式,是一套经过前人总结、业务验证并适合于特定业务开发的代码组织方式。设计模式的目...

网友评论

    本文标题:JavaScript进阶:简单工厂模式

    本文链接:https://www.haomeiwen.com/subject/mevkhrtx.html