首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 软件管理 > 软件开发 >

关联和依赖的疑惑,请一上.

2013-01-23 
关联和依赖的疑惑,请高手指点一下...以下是别人的一个示例:Bicycle类和Pump类之间是依赖关系,在Bicycle类

关联和依赖的疑惑,请高手指点一下...
以下是别人的一个示例:
Bicycle类和Pump类之间是依赖关系,在Bicycle类中无需定义Pump类型的变量。Bicycle类的定义如下:


public class Bicycle{
/** 给轮胎充气 */
public void expand(Pump pump){
pump.blow();
}
}

在此我有点搞不懂:
打气筒怎么影响自行车的轮胎?难道在打气筒中定义一个定义一个自行车?
其它的情况打气筒怎么找到这个要充气的自行车?

依赖关系可以这样理解吗?

如果您觉得这个问题问得太拙劣、很可笑,也请指点一下,因为我实在是想不通,正在郁闷中?
[解决办法]
A依赖B的含义为,当B的接口改变时,A(可能)将无法正常工作。

Bicycle.expand要调用某个Pump,所以说Bicycle依赖Pump。如果Pump的接口变了(比如blow改成doBlow),Bicycle.expand的实现需要修改。

但是,Bicycle本身并没有一个Pump的引用,所以没有关联关系。如果改一下设计,所有的Bicycle都自带一个Pump以用来expand(以免在需要expand时找不到一个Pump),这时就有了一个关联关系。

热点排行