A {
...
new B();.
...
}
A和B产生了耦合,也就是说一人A就有一个B。
现在有一天,需求变了,也就是让C代替B。
惨了,要去修改A上面所有B的原码,如果手头没有B的原码怎么办?
通常来说,要降低耦合会用接口来实现,那么在这里适用吗?试下先,
B implements Interface
C implements Interface
如果,原来开发都用的是Interface = new B();
这好像好一点,其实的确好了一点,但是这只是它的设计好一点,并没有解决我们的需求,为什么呢?
因为,这里面A控制了B对象的出现,也就是控制权在A上。
也许我们可以想下,如果控制权在别的地方,可不可以呢?
我们可以马上想到,setter,结束我们用的接口,可以了
public void setInterface(Interface i){
this.i = i;
}
现在好了,我们可以在外面对它进行控制了。
当然我们可以用一个XML来做这些操作。