js中耦合与解耦问题总结

一.概念

一、耦合

1、耦合是指两个或两个以上的体系或两种运动形式间通过相互作用而彼此影响以至联合起来的现象。

2、在软件工程中,对象之间的耦合度就是对象之间的依赖性。对象之间的耦合越高,维护成本越高,因此对象的设计应使类和构件之间的耦合最小。
二、解耦

1、解耦,就是解除耦合关系。

2、在软件工程中,降低耦合度即可以理解为解耦,模块间有依赖关系必然存在耦合,理论上的绝对零耦合是做不到的,但可以通过一些现有的方法将耦合度降至最低。

4、观察者模式:观察者模式存在的意义就是「解耦」,它使观察者和被观察者的逻辑不再搅在一起,而是彼此独立、互不依赖。QQ消息推送来了之后,既要在通知栏上弹个推送,又要在桌面上标个小红点,也是观察者与被观察者的巧妙配合。

二.耦合类型及解耦

避免全局耦合

<script>
    var PAGE = 20;
</script>
<script src="main.js">
</script>

全局变量跨了两个文件使用,html和main.js,对于维护main.js的开发很难去理解PAGE变量的含义。 不利于维护。

通过事件侦听与事件抛发降低函数耦合

 var o=new EventTarget();
        (function(){
            var b=20;
            init();
            function init(){
               //侦听o事件对象 
                o.addEventListener("javascript",jsHandler);
               
            }
            function dis(){
            //创建事件
                var evt=new Event("abcde");
                evt.b=b;
                //向document中间件抛发事件
                document.dispatchEvent(evt);
            }
            function jsHandler(e){
                console.log(e.a,"bbbbb");
                dis();
            }
        })();
        (function(){
            var a=10;
            init();
            function init(){
            //侦听 document中间件
                document.addEventListener("abcde",fn);
                dis();
            }
        
            function dis(){
                var evt=new Event("javascript");
                evt.a=a;
      
                o.dispatchEvent(evt);
            }
            function fn(e){
                console.log(e.b,"aaaa");
             
            }
        })(); */
  • 1
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值