iis服务器助手广告广告
返回顶部
首页 > 资讯 > 精选 >JavaScript中设计模式是什么
  • 344
分享到

JavaScript中设计模式是什么

2023-06-20 20:06:12 344人浏览 安东尼
摘要

这篇文章主要介绍了javascript中设计模式是什么,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。设计模式是任何优秀软件的基础,JavaScript 也不例外,学习设计模式

这篇文章主要介绍了javascript设计模式是什么,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。

设计模式是任何优秀软件的基础,JavaScript 也不例外,学习设计模式,对代码组织多一些思路,通过代码片段来学习编码思路对于开发者来说是比较容易理解的,本文继续通过代码片段简单展示常见的设计模式,但不深入设计模式本身。

构造函数模式

构造函数(Constructor Pattern)作为初始化具有特定属性和方法的对象的函数。构造器模式类似于该定义。我们使用这种模式来创建同一对象的多个实例。

function Article(title, author) {    this.title = title;    this.author = author;    this.showTitle = () => console.log(this.title);}const article = new Article("JavaScript 设计模式", "devpoint");article.showTitle();

原型模式

原型模式(Prototype Pattern):使用原型实例指定创建对象的种类,并且通过拷贝这些原型创建新的对象,原型模式是一种对象创建型模式,通过从原型克隆对象来创建对象的新实例。

如果发现直接构造一个新对象很复杂且效率低下,那么原型模式非常适合这种情况。

function Article(title, author) {    this.title = title;    this.author = author;    this.showTitle = () => console.log(this.title);}Article.prototype.showAuthor = function () {    console.log(this.author);};const article = new Article("JavaScript 设计模式", "devpoint");article.showAuthor();

工厂模式

工厂模式(Factory Pattern)的主要思想是将对象的创建与对象的实现分离,开发过程中可能在不知道它的情况下就使用了它的模式。在 JavaScript 中,它将对象创建与代码的其余部分分开,封装创建代码,公开 api 以生成不同的对象。

const Vehicle = function () {};const Car = function () {    this.say = function () {        console.log("I am a car");    };};const Truck = function () {    this.say = function () {        console.log("I am a truck");    };};const Bike = function () {    this.say = function () {        console.log("I am a bike");    };};const VehicleFactory = function () {    this.createVehicle = (vehicleType) => {        let vehicle;        switch (vehicleType) {            case "car":                vehicle = new Car();                break;            case "truck":                vehicle = new Truck();                break;            case "bike":                vehicle = new Bike();                break;            default:                vehicle = new Vehicle();        }         return vehicle;    };};const vehicleFactory = new VehicleFactory();const car = vehicleFactory.createVehicle("car");const truck = vehicleFactory.createVehicle("truck");const bike = vehicleFactory.createVehicle("bike");car.say(); // I am a cartruck.say(); // I am a truckbike.say(); // I am a bike

命令模式

命令模式(Command Pattern)的主要目的是将动作或操作封装为对象。

假设需要为电子商务构建支付系统,根据所选的付款方式,将需要处理特定的流程。

if (selectedPayment == "creditcard") {    // 处理信用卡支付}

一些付款方式只需要处理一个步骤,但其他方式可能不止一个步骤。通过使用上面的示例代码,提供的是实现,而不是接口,这会导致紧密耦合。

命令模式是提供松散耦合的一个很好的解决方案。系统不应了解有关每种特定付款方式处理的太多信息。为了实现这一点,该模式将请求操作的代码与执行实际实现的代码分开。

function Command(operation) {    this.operation = operation;}Command.prototype.execute = function () {    this.operation.execute();};function CreditCardPayment() {    return {        execute: function () {            console.log("信用卡");        },    };}function WechatPayment() {    return {        execute: function () {            console.log("微信支付");        },    };}function AliPayment() {    return {        execute: function () {            console.log("支付宝");        },    };}function CreditCardCommand() {    return new Command(new CreditCardPayment());}function WechatPalCommand() {    return new Command(new WechatPayment());}function AliPayCommand() {    return new Command(new AliPayment());}function PaymentHelper() {    let paymentCommand;     return {        setPaymentCommand: function (command) {            paymentCommand = command;        },        executeCommand: function () {            paymentCommand.execute();        },    };}function run() {    const paymentHelper = new PaymentHelper();    paymentHelper.setPaymentCommand(new CreditCardCommand());    paymentHelper.executeCommand();    paymentHelper.setPaymentCommand(new WechatPalCommand());    paymentHelper.executeCommand();    paymentHelper.setPaymentCommand(new AliPayCommand());    paymentHelper.executeCommand();}run();

观察者模式

观察者模式(Observer Pattern)又叫发布订阅模式(Publish/Subscribe),它定义了一种一对多的关系,让多个观察者对象同时监听某一个主题对象,这个主题对象的状态发生变化时就会通知所有的观察者对象,使得它们能够自动更新自己。

function Newsletter() {    this.observers = [];}Newsletter.prototype = {    subscribe: function (observer) {        this.observers.push(observer);    },    unsubscribe: function (observer) {        this.observers = this.observers.filter((ob) => ob !== observer);    },    notify: function () {        this.observers.forEach((observer) =>            console.log("你好!" + observer.toString())        );    },};const subscriber1 = "订阅者 1";const subscriber2 = "订阅者 2";const newsletter = new Newsletter();newsletter.subscribe(subscriber1);newsletter.subscribe(subscriber2);newsletter.notify(); // 输出:你好!订阅者 1 ; 你好!订阅者 2 newsletter.unsubscribe(subscriber2);newsletter.notify(); // 你好!订阅者 1

单体模式

单体模式(Singleton Pattern)是 JavaScript 中最基本但又最实用的模式之一,比其他任何模式都更常用。这种模式提供了一种将代码组织为一个逻辑单元的方法,可用于减少全局变量的数量。

const utils = (function () {    let instance;     function initialize() {        return {            sum: function (a, b) {                return a + b;            },        };    }    return {        getInstance: function () {            if (!instance) {                instance = initialize();            }            return instance;        },    };})();const sum = utils.getInstance().sum(1, 2);console.log(sum); // 3

单体模式主要的好处在于它对代码组织作用,把相关的方法和属性组织在一个不会被多次实例化的单体中,使代码的调试和维护变得轻松,但会导致模块间的强耦合。

模块模式

模块模式(Module Pattern)也可以说是单体模式的一种,该模式是用于实现软件模块概念的设计模式,可以将模块内的函数、变量和属性设为公共或私有成员。

const articleModule = (function () {    // 私有    const title = "JavaScript 设计模式";    // 公共    return {        printTitle: function () {            console.log(title);        },    };})();articleModule.printTitle(); // JavaScript 设计模式

感谢你能够认真阅读完这篇文章,希望小编分享的“JavaScript中设计模式是什么”这篇文章对大家有帮助,同时也希望大家多多支持编程网,关注编程网精选频道,更多相关知识等着你来学习!

--结束END--

本文标题: JavaScript中设计模式是什么

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

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

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

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

下载Word文档
猜你喜欢
  • JavaScript中设计模式是什么
    这篇文章主要介绍了JavaScript中设计模式是什么,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。设计模式是任何优秀软件的基础,JavaScript 也不例外,学习设计模式...
    99+
    2023-06-20
  • Java中什么是设计模式
    这篇文章给大家介绍Java中什么是设计模式,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。java基本数据类型有哪些Java的基本数据类型分为:1、整数类型,用来表示整数的数据类型。2、浮点类型,用来表示小数的数据类型。...
    99+
    2023-06-14
  • C++设计模式中的桥模式是什么
    这篇文章主要介绍了C++设计模式中的桥模式是什么,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。单一职责模式:在软件组件的设计中,如果责任划分的不清晰,使用继承得到的结果往往是...
    99+
    2023-06-29
  • Python设计模式中的状态模式是什么
    这篇文章将为大家详细讲解有关Python设计模式中的状态模式是什么,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。状态模式状态模式,当对象的内部状态发生了改变的时候,允许对象执行不同的流程。优点:封装了状态...
    99+
    2023-06-29
  • JavaScript中的设计模式 单例模式
    目录1、什么是设计模式2、设计模式五大设计原则(SOLID)3、为什么需要设计模式?4、单例模式前言: 设计模式在我们编程中是十分重要的! 设计模式(Design pattern)...
    99+
    2024-04-02
  • 设计模式之什么是工厂模式
    本篇内容主要讲解“设计模式之什么是工厂模式”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“设计模式之什么是工厂模式”吧! 01 简单工厂方法简单工厂方法...
    99+
    2024-04-02
  • JS与设计模式中什么是策略模式Strategy
    这篇文章给大家介绍JS与设计模式中什么是策略模式Strategy,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。一,总体概要1,笔者浅谈策略模式,又叫算法簇模式,就是定义了不同的算法,并且之间可以互相替换,此模式让算法的...
    99+
    2023-06-17
  • java设计模式中的责任链模式是什么
    本篇文章为大家展示了java设计模式中的责任链模式是什么,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。一:模式说明模式定义:使多个对象都有机会处理请求,从而避免了请求的发送者和接受者之间的耦合关系。...
    99+
    2023-06-22
  • JavaScript设计模式组合设计模式案例
    目录前言组合设计模式的业务场景组合设计模式小案例前言 组合设计模式是用于将多个部分通过组合的方式行成一个整体,就比如我们去吃饭,点了一份米饭和一份鱼香肉丝,这些东西可以看成一个部分,...
    99+
    2024-04-02
  • C# Observer设计模式是什么
    这篇文章主要讲解了“C# Observer设计模式是什么”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“C# Observer设计模式是什么”吧!我们来看一个新的范例,因为有很多相关的内容,所...
    99+
    2023-06-17
  • JavaScript设计模式中的观察者模式
    目录观察者设计模式初始数据被观察者观察者观察者设计模式 观察者设计模式中分为被观察者和观察者,当被观察者触发了某个边界条件,观察者就会触发事件,这里需要俩个构造函数进行观察者设计模式...
    99+
    2024-04-02
  • java设计模式的策略模式是什么
    这篇文章主要介绍“java设计模式的策略模式是什么”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“java设计模式的策略模式是什么”文章能帮助大家解决问题。策略模式亦称:Strategy意图策略模式是...
    99+
    2023-07-02
  • JavaMe开发中什么是MVC设计模式
    这期内容当中小编将会给大家带来有关JavaMe开发中什么是MVC设计模式,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。【问题描述】介绍设计模式的文章和书很多,但只有使用时,才能理解设计模式的妙处。对UIC...
    99+
    2023-06-17
  • javascript设计模式中的策略模式怎么实现
    这篇文章主要讲解了“javascript设计模式中的策略模式怎么实现”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“javascript设计模式中的策略模式怎么实现”吧!一. 认识策略模式策略...
    99+
    2023-06-26
  • JavaScript设计模式之命令模式
    命令模式是JavaScript设计模式中行为型的一种设计模式; 定义:向某些对象发送请求,但是并不知道被请求的操作具体是什么,所以我们希望以一种松耦合的方式来设计程序,使得请求发送者...
    99+
    2024-04-02
  • javascript设计模式之代理模式
    目录一. 初识代理模式二. 代理模式的实现思想三. 代理模式分类四. 虚拟代理模式的实际运用五. 代理的使用意义及要求六. 总结一. 初识代理模式 代理模式是为一个对象提供一个代用品...
    99+
    2024-04-02
  • javascript设计模式之工厂模式
    目录介绍UML类图工厂模式的场景总结介绍 将new操作单独封装遇到new时,就要考虑是否应该使用工厂模式比如买汉堡:直接点餐、取餐,我们不会亲手做,商店要“封装&rdqu...
    99+
    2024-04-02
  • java八大设计模式是什么
    Java八大设计模式是指GOF(Gang of Four)提出的23种设计模式中的一部分,这些设计模式可以帮助开发者解决在软件设计过...
    99+
    2023-08-31
    java
  • JavaScript设计模式之单例模式
    目录单例模式实现单例模式透明的单例模式用代理实现单例模式惰性单例通用的惰性单例小结单例模式 单例模式是一种常用的模式,有一些对象我们往往只需要一个,比如线程池、全局缓存、浏览器中的 ...
    99+
    2022-11-13
    JavaScript设计模式 JavaScript单例模式
  • 理解JavaScript设计模式中的单例模式
    单例模式(Singleton Pattern)是最简单的设计模式之一。这种类型的设计模式属于创建型模式,它提供了一种创建对象的最佳方式。 单例模式涉及到一个单一的类,该类负责创建自己...
    99+
    2024-04-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作