耦合就是两个层之间有依赖关系?
==
同一个层也可能有依赖关系
看见有解耦的方法就是在相互依赖的两层之间加一层,可是新加的一层不是又和原来的两层有耦合关系了吗?
==
解耦的方式是让设计依赖于抽象,而不是依赖于实现,看看设计模式的原则
到底什么是耦合??
==
A明确地使用B资源
publci class A
{
B b;
}
public class B
{
}
现在A依赖于B
interface IX
{
...
}
public class A
{
IX i;
public A(IX i)
{
this.i = i;
}
}
public class B:IX
{
}
调用的时候,我可以决定用哪个实现接口的类,甚至可以是从配置文件反射生成
A a = new A(new B());
也可能因为某个条件
A a = new A(new C());
这样 A依赖的是抽象的接口IX,而不是具体的类B或者C