编程思想-解耦



解耦方法有但不限有如下几种:(百度解释前三种)
(a)采用现有设计模式实现解耦,如 事件驱动 模式、 观察者模式 责任链模式 等都可以达到解耦的目的;
(b)采用面向接口的方式编程,而不是用直接的类型引用,除非在最小内聚单元内部。但使用该方法解耦需要注意不要滥用接口。
(c) 高内聚 ,往往会带来一定程度的低耦合度。高内聚决定了内部自行依赖,对外只提供必须的接口或消息对象,那么由此即可达成较低的耦合度。
  ( d )注解,以注解的方式,将方法,属性注入依赖,实现高扩展性。

解耦总的一句话来说,减少依赖,抽象业务和逻辑,让各个功能实现独立

比如:
     class A{
        public void do();
          }
     class B{
      public void do();
     }
      class C{
        private A  a;
        void showA(A a){
            a.do();
          }
        }
 C依赖于A,又依赖于B,耦合度高。

解耦如下:
   interface I{
     void do();

 }

   clas A implements I{
      public void do();
}

   clas B implements I{
     public void do();
}

 class C{
        private I  i;
        void show(I i){
            i.do();
          }
        }
当然这只是其中一种情况。低耦合总的规则就是:
1、上层模块不依赖于底层模块
2、控制反转,比如:去餐馆吃饭,付钱让厨师做,这是正常的控制流程(相当于客户端发交易到服务端);
现在改为去吃自助烧烤的方式,自己选择烧烤哪些肉类,大龙虾,肉串,鸡腿等,这就是控制权在自己手上(相当于客户端控制服务端)。
3.注解下一篇再单独总结。


知乎解答:


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值