当前位置:  开发笔记 > 编程语言 > 正文

使用JavaScript的设计模式实现的一些示例是什么?

如何解决《使用JavaScript的设计模式实现的一些示例是什么?》经验,为你挑选了2个好方法。

我是一个熟练的程序员,使用JavaScript,但我不是大师.我知道你可以用它做一些非常强大的东西,除了相当基本的DOM操作之外我还没有看到太多东西.我想知道人们是否可以使用JavaScript提供一些传统设计模式概念的例子,例如Factory Method,Singleton等.在什么情况下这些模式将用于网络?



1> Mike Stone..:

我只是想添加我从Jonathan Rauch已经推荐的Pro JavaScript Design Patterns中学到的我最喜欢的JavaScript模式.

它是命名空间单例模式.基本上,您通过单例创建名称空间,允许您隐藏外部使用的方法和变量.隐藏/暴露方法实际上是隐藏的,因为它们是在闭包中定义的.

var com = window.com || {};
com.mynamespace = com.mynamespace || {};
com.mynamespace.newpackage = (function() {
    var myPrivateVariable = "hidden";
    var myPublicVariable = "exposed";

    function myPrivateMethod() {
        return "also hidden";
    }

    function myPublicMethod() {
        return "also exposed";
    }

    return {
        myPublicMethod: myPublicMethod,
        myPublicVariable: myPublicVariable
    };
})();



2> Mike Stone..:

尼古拉谈到了这一点,但设计模式在具有巨大差异的语言之间并不一致.我之前已经阅读过(并同意)设计模式通常是语言中缺少功能的标志.

作为一个完美的例子,在某些语言中,"Factory"模式是完全不必要的,Ruby正如我所想的那样(因为对象构造只是Class实例上的一个方法):

# create a factory for MyObject
my_factory = MyObject
instance_1 = my_factory.new

# change the factory to another class
my_factory = MyOtherObject
instance_2 = my_factory.new

每当您将设计模式应用于与最初开发的语言不同的语言时,请确保您考虑它是否真的必要,以及您可以通过新的语言功能以何种方式改进它.设计模式只是一个指南,您应该始终考虑您打算使用的模式是否真正需要,或者是否可以在您的情况下以更好的方式采用它.

推荐阅读
虎仔球妈_459
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有