降低耦合。。。

原创 2007年09月18日 10:40:00

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

版权声明:本文为博主原创文章,未经博主允许不得转载。

相关文章推荐

【设计模式】外观模式降低系统耦合(二)

接上文 【设计模式】外观模式降低系统耦合(一) 六、外观实例演示1.背景介绍 最近在重构机房收费系统,刚开始的时候使用的是三层架构:UI层、BLL层、DAL层。开始顺利的敲完了登陆的这一条先...

降低耦合

按照软件工程学粗浅的理解,耦合就是程序中模块与模块间的关系的总和。上面的“模块”一词是一个模糊的概念,可以是一个变量、一个函数、一个类,或者是一个package(在大型软件项目中)。 显然,如果...

C++进阶 降低文件间的编译依存关系(接口与实现解耦合)

问题背景 有时候会发现仅仅改动了某个类的一点实现(仅仅是几句代码),在编译时却发现要编译整个工程!特别是工程有点大时,编译要等很久很久。。。只为修改一个问题,时间都浪费在等待上了。为了避免这一问题...

【设计模式】外观模式降低系统耦合(一)

一、摘要 外观模式(Facade)是一个使用频率非常高的设计模式之一。 它通过为子系统中的一组接口提供一个一致的界面,定义一个高层接口,这个接口使得这一子系统更加容易使用。 二、外观模式概述...

Mybatis-3.0.6如何采用多个配置文件,模块化,降低耦合度

写文章之前,在网上查找了很多办法,要么代码错误,要么跑不动,要么……总之各种原因的报错,因此参考源代码,自己改写了一个类。 之前的项目,总是把项目所有的“typeAlias”放到一个mybatis....

在android需要大量使用xml进行网络传输时,如何用面向对象的思路降低xml的耦合性并增加重用性

根据一个需求来就行分析。由于

设计及编码质量改进之降低耦合度

原文出处:http://www.51testing.com/html/91/39391-98852.html 一、什么是耦合度   耦合度就是某模块(类)与其它模块(类)之间的关联、感...

spring的依赖注入如何降低了耦合

刚看spring,对依赖注入DI产生了迷惘,通过查看一些资料总结了一下,希望对此理解深入的人能再指点迷津 依赖注入:程序运行过程中,如需另一个对象协作(调用它的方法、访问他的属性时),无须在代码中创...

类之间降低耦合javaScript

这篇文章其实是作为js自定义事件的补充,在那篇文章中我们说到了自定义事件对于避免类的污染作用,这篇主要讲讲自定义事件在类之间相互调用的解耦作用: 还是举个例子吧: 假设我们需要实现一个功能,点击登...

C++设计模式10--命令模式(二)(Command)--降低请求发送者与接收者耦合

工作了一天感觉好累,洗了个澡,打开电视看看有没有喜欢的节目,拿起遥控器,看着上面的按钮,忽然感觉好奇妙,我们按一开机键,电视就开了,然后...哈哈,真好玩,我按我按。细想之下这不就是一个命令模式么。 ...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

(最多只允许输入30个字)