繁体   English   中英

为什么立面图案+展示模块化图案“增加了安全性”?

[英]why does the facade pattern + revealing modular pattern “add 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();
      }

    };

  }

})(window);

这根本没有道理。 真的没有

  • 没有添加“安全性”。 开发Web应用程序时,安全性是一个完全不同的领域。
  • 与其他模式很好地结合使用 ”,“ 易于实现 ”并不是真正的优势。 常规设计甚至更简单。
  • 使内部修补变得容易 ”。 当然。 但是亚尼 当您真正修补内部零件或填充外部零件时,仍然可以引入它。
  • 提供一个更简单的公共接口 ”。 好吧,它可以用来降低接口的复杂性,特别是如果内部方法具有其他未记录且预期不会公开的参数。 但是示例中的someMethod没有任何参数,因此在这里是无用的。

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM