JavaScript 设计模式之外观模式

发布于 2021-11-24 13:01:12 字数 1121 浏览 1111 评论 0

外观模式是为外部提供简单的接口一种方式,由于模块内部方法庞杂,不能一一对外公开,那么我们需要一个统一的和简单的对外方法 API 来调用这些内在的函数。这时候我们可以用到外观模式:

var module = (function(){
    var name = 'bobi';
    var _p = function() {//内部方法,不公开
        console.log('your name is' + name);
    }
    var _q = function() {//内部方法,不公开
        console.log('my name is' + name);
    }
    var _c = function(m) {//内部方法,不暴露
        name = m
    }
 
    return{
        f : function(m) {//公开的方法
            _c(m);//调用私有方法
             if(name == 'bobi') {
                _p()
             }else{
                _q();
             }
        }  
    }
})();

在 module 中,所有的私有方法都不需要公开,我们只是暴露了一个 f 方法,作为桥接的接口,f 里面会执行调用各个内部方法。我们不需要关系 _q_p 的执行内容,只需要关心 f 这个公开的方法。在这里,f 就是作为一个简单的 api 来访问这些方法的。

外观模式也有一些缺点:那就是层级访问带来的性能问题,也就是说本来可以一层执行的函数,现在需要第二层来实现,所以在考虑使用此方法的时候我们要考虑到这样做的好处和付出的代价是否合理。

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据

关于作者

终陌

暂无简介

0 文章
0 评论
681 人气
更多

推荐作者

已经忘了多久

文章 0 评论 0

15867725375

文章 0 评论 0

LonelySnow

文章 0 评论 0

走过海棠暮

文章 0 评论 0

轻许诺言

文章 0 评论 0

信馬由缰

文章 0 评论 0

    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
    原文