gpt4 book ai didi

javascript - 为什么外观模式+揭示模块化模式 "add security"?

转载 作者:行者123 更新时间:2023-12-03 11:23:34 27 4
gpt4 key购买 nike

REFERENCE

根据引用:下面是外观模式的更高级版本,它增加了内部方法的安全性。

问题:老实说,增加安全性是什么意思?此外,什么是不安全的例子?最后,安全性和这个外观 + 揭示模块模式的简单但真实的用例是什么?

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();
}

};

}

} )( 窗口 );

最佳答案

这毫无意义。确实没有。

  • 没有额外的“安全性”。开发 Web 应用程序时,安全性是一个完全不同的领域。
  • 与其他模式结合使用效果很好”,“易于实现”并不是真正的优势。正常的设计更加简单。
  • 使内部修补变得容易”。当然。但是YAGNI 。当您真正修补内部或填充外部时,您仍然可以引入它。
  • 提供更简单的公共(public)接口(interface)”。嗯,它可以用于降低接口(interface)的复杂性,特别是当内部方法具有未记录且不希望公开的附加参数时。但示例中的 someMethod 没有任何参数,因此在这里毫无用处。

实际上,揭示模块模式本身已经是一个外观。它定义了一些内部函数,然后将它们导出到模块对象上,模块对象的属性名称是外部接口(interface)。不需要额外的间接层。

关于javascript - 为什么外观模式+揭示模块化模式 "add security"?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27011043/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com