关闭

降低耦合。。。

317人阅读 评论(0) 收藏 举报

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来做这些操作。

0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:36548次
    • 积分:738
    • 等级:
    • 排名:千里之外
    • 原创:35篇
    • 转载:11篇
    • 译文:0篇
    • 评论:4条
    文章分类
    最新评论