解耦方法有但不限有如下几种:(百度解释前三种)
(b)采用面向接口的方式编程,而不是用直接的类型引用,除非在最小内聚单元内部。但使用该方法解耦需要注意不要滥用接口。
( 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.注解下一篇再单独总结。
知乎解答: