• 在线客服

  • 扫描二维码
    下载博学谷APP

  • 扫描二维码
    关注博学谷微信公众号

  • 意见反馈

原创 JavaScript开发者必会的五种设计模式

发布时间:2020-07-01 15:24:03 浏览 4235 来源:博学谷 作者:照照

    JavaScript设计模式的作用是显而易见的,开发者可以通过它写出整洁美观、结构合理的代码。本文将和大家来盘点一下五种JavaScript开发者必会的五种设计模式,它们分别是构造函数设计模式、原型设计模式、命令设计模式、观察者模式、工厂设计模式。

     

    JavaScript设计模式

     

    1、构造函数设计模式

     

    构造函数设计模式是一种用于在分配内存后初始化新创建的对象的特殊方法。举个例子:

     

    // 创建一个新的空对象

    var newObject = {};

    // 创建一个新的空对象

    var newObject = Object.create(Object.prototype);

    var newObject = newObject();

     

    2、原型设计模式

     

    原型模式是基于原型继承的。在这种模式中,被创建的对象充当其他对象的原型。实际上,原型是被创建的每个对象构造函数的蓝图。举个例子:

     

    var myCar= {

    name:"Ford Escort",

    brake:function(){

    console.log("Stop! I am applying brakes");

    }

    Panic : function (){

    console.log ( "wait. how do you stop thuis thing?")

    }

    }

    // 使用 object create 实个新的例化一 car

    var yourCar= object.create(myCar);

    // 现在它就是另一个的原型了

    console.log (yourCar.name);]

     

    3、命令设计模式

     

    命令设计模式将方法调用、操作或请求封装到单个对象中,以便我们可以自行传递方法调用。命令设计模式让我们可以从任何正在执行的命令中发出命令,并将责任委托给与之前不同的对象。这些命令以 run() execute() 格式显示。示例:

     

    (function(){

    var carManager = {

    // 请求的信息

    requestInfo: function( model, id ){

    return "The information for " + model + " with ID " + id + " is foo bar";

    },

    // 现在购买这个 car

    buyVehicle: function( model, id ){

    return "You have successfully purchased Item " + id + ", a " + model;

    },

    // 现在 arrange viewing

    arrangeViewing: function( model, id ){

    return "You have successfully booked a viewing of " + model + " ( " + id + " ) ";

    }

    };

    })();

     

    4、观察者模式

     

    观察者设计模式在许多对象同时与其他对象集通信的场景中用起来很方便。在观察者模式中不会在状态之间发生不必要的事件 push pull;相比之下,所涉及的模块仅会修改数据的当前状态。示例:

    function Observer() {

    this.observerContainer = [];

    }

    Observer.prototype.subscribe = function (element) {

    this.observerContainer.push(element);

    }

    // 下面是从 container 中移除一个元素

    Observer.prototype.unsubscribe = function (element) {

    const elementIndex = this.observerContainer.indexOf(element);

    if (elementIndex > -1) {

    this.observerContainer.splice(elementIndex, 1);

    }

    }

    /**

    * we notify elements added to the container by calling

    * each subscribed components added to our container

    */

    Observer.prototype.notifyAll = function (element) {

    this.observerContainer.forEach(function (observerElement) {

    observerElement(element);

    });

    }

     

    5、工厂设计模式

     

    命令设计模式将方法调用、操作或请求封装到单个对象中,以便我们可以自行传递方法调用。命令设计模式让我们可以从任何正在执行的命令中发出命令,并将责任委托给与之前不同的对象。这些命令以 run() execute() 格式显示。示例:

     

    (function(){

    var carManager = {

    // 请求的信息

    requestInfo: function( model, id ){

    return "The information for " + model + " with ID " + id + " is foo bar";

    },

    // 现在购买这个 car

    buyVehicle: function( model, id ){

    return "You have successfully purchased Item " + id + ", a " + model;

    },

    // 现在 arrange viewing

    arrangeViewing: function( model, id ){

    return "You have successfully booked a viewing of " + model + " ( " + id + " ) ";

    }

    };

    })();

     

    作为一个JavaScript开发者,如果你想提高项目的可维护性和开发工作的效率,那么上面盘的这些的最受欢迎的JavaScript设计模式就赶紧用起来吧! 

    申请免费试学名额    

在职想转行提升,担心学不会?根据个人情况规划学习路线,闯关式自适应学习模式保证学习效果
讲师一对一辅导,在线答疑解惑,指导就业!

上一篇: 前端开发者怎样提高自己的竞争力? 下一篇: 腾讯Web前端工程师的月薪是多少?

相关推荐 更多

热门文章

  • 前端是什么
  • 前端开发的工作职责
  • 前端开发需要会什么?先掌握这三大核心关键技术
  • 前端开发的工作方向有哪些?
  • 简历加分-4步写出HR想要的简历
  • 程序员如何突击面试?两大招带你拿下面试官
  • 程序员面试技巧
  • 架构师的厉害之处竟然是这……
  • 架构师书籍推荐
  • 懂了这些,才能成为架构师
  • 查看更多

扫描二维码,了解更多信息

博学谷二维码