根据参考:以下是Facade模式的更高级版本,它为内部方法增加了安全性。
问题: 老实说,他们的意思是增加安全性?那么,什么是不安全的例子呢?最后, security 和这个Facade +揭示模块模式的简单但真实的用例是什么?
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();
}
};
}
})(窗口);
答案 0 :(得分:1)
这没有任何意义。真的没有。
someMethod
没有任何参数,所以这里没用。实际上,揭示模块模式本身已经是一个外观。它定义了一些内部函数,然后将它们导出到模块对象上,模块对象的属性名称是外部接口。不需要额外的间接层。