【发布时间】:2015-01-16 15:05:27
【问题描述】:
根据参考:下面是外观模式的更高级版本,为内部方法增加了安全性。
问题: 老实说,增加安全性是什么意思?此外,什么是不安全的例子?最后,security 和这种外观 + 显示模块模式的简单但真实的用例是什么?
var MyModule = ( function( window, undefined ) {
// revealing module pattern ftw
function MyModule() {
function someMethod() {
alert( 'some method' );
}
function someOtherMethod() {
alert( 'some other method' );
}
// expose publicly available methods
return {
// in our normal revealing module pattern, we'd do the following:
someMethod : someMethod,
// in the facade pattern, we mask the internals so no one has direct access by doing this:
// HOW DOES THIS MASK THE INTERNALS? WHAT DO THEY MEAN BY ADDS SECURITY?
someMethod : function() {
someMethod();
}
};
}
})(窗口);
【问题讨论】:
-
这意味着没有人可以更改函数签名。但是,它仍然可以完全替换,这使得整个想法有些愚蠢。如果它可以访问闭包,那么它就更有意义了。
-
等待显示模块模式,您可以重新分配 someMethod: 但是使用外观模式您不能重新分配 someMethod?
-
你能举一个实际的例子吗?我只是有点困惑。
-
你可以重新分配它。这有点没用,但我想在第二个中,您无法务实地获取方法源代码。不过,这几乎不是我所说的安全性。
-
问题是:什么样的安全性?可靠性?安全?保护?可编程性?还是用户保护?
标签: javascript design-patterns facade