揭示模块模式(RMP)的缺点 [英] The Revealing Module Pattern (RMP) disadvantages

查看:28
本文介绍了揭示模块模式(RMP)的缺点的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我最近熟悉了揭示模块模式(RMP),我读了很多关于它的文章。

它看起来是一个非常好的模式,我想开始在一个大项目中使用它。在我使用的项目中:jQuery、KO、Required JS、jQuery Mobile、JayData。在我看来,它将非常适合KO视图模型。

具体地说,我想使用THIS版本。

我找不到使用此模式的缺点,是不是因为没有缺点(我觉得很难相信)?

开始使用之前应该考虑什么?

推荐答案

我读了@nemesv向我推荐的那篇文章(感谢:),我认为还有一个没有提到的缺点,所以我想我应该在这里添加它以供参考。下面是这篇文章的引语:

缺点

此模式的一个缺点是,如果私有函数引用 作为公共函数,如果修补程序不能重写该公共函数 是必要的。这是因为私有函数将继续 引用私有实现,并且该模式不适用于 公共成员,仅限于函数。

引用私有变量的公共对象成员也 以上述无补丁规则说明为准。

因此,使用显示模块模式创建的模块 可能比使用原始模块创建的模块更脆弱 模式,所以使用时应小心。

和我的附加内容:

您不能对此模式使用继承。例如:

var Obj = function(){
    //do some constructor stuff
}

var InheritingObj = function(){
    //do some constructor stuff
}

InheritingObj.prototype = new Obj();

InheritingObj.prototype.constructor = InheritingObj;

这是一个简单的js继承示例,但是在使用Revealing Prototype Pattern(存档的here)时,您需要这样做:

InheritingObj.prototype = (function(){
    //some prototype stuff here
}());

这将覆盖您的继承。

这篇关于揭示模块模式(RMP)的缺点的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆