依赖于抽象。这句话本身却很抽象,我也知道要依赖于抽象啊,但是什么叫依赖于抽象?如何做到依赖抽象?甚至于什么叫依赖?
一、依赖,就是没有不能你。
如果没有了你,我就不能生存。。。这个类图表明我对你存在依赖,即,我要完成生存();需要调用你的爱();
二、不再依赖你
如果我不依赖你,而依赖于抽象。那会发生什么情况呢?
就算没有了你,我还是能够正常生存(),只要爱我的人还在。
三、妖兽,第三者出现了!!!
更恐怖的是,除了第三者,还可以有第四者甚至是第五者……
尽管如此,我的生存力却大大地增强了。所以你知道了,这个世界上为什么有那么多花心的人。因为花心的人生存力强啊!!!因为我不依赖你了,所以有可能会出现这种状况。。。即使你不在了,我也可以好好地活下去。
四、真的不依赖了吗?
“依赖于抽象”话说得好听,但是做起来可没想像中那么容易哦。这个问题有的同学直到工作之后才搞明白。而我算是比较幸运的啦,可以看到大家的经验总结,早早地学到了这些东西。
尝试将以下类图转化为代码。
先看一下网上常见的示例代码。
class我{
public void 生存(){
……
爱我的人 ni = new 你();
ni.爱();
……
}
}
爱我的人 ni = new 你();
这里我们可能会忽略“你();”这个方法,因此我们往往误认为这段代码里没有用到你的方法,其实我要生存()还需要依赖于你的构造方法“你()”。很明显,这样的代码,我还是依赖你的。实际上,这段代码跟下面这段有什么区别?
class 我{
public void 生存(){
……
你 ni = new 你();
ni.爱();
……
}
}
下面看看如何真正解除我对你的依赖关系。
class我{
public void 生存(爱我的人 ren){
……
Ren.爱();
……
}
}
发现了什么不同?----我的世界已经完全没了你!
在class 我的代码中,完全没有看到class 你。这也就真正的实现了解耦。
五、编后语
为了使我们创造的对象具有更强的生命力,我们要做的事情就是:依赖于抽象。
当然,在爱情中,祝大家都能找到这样的另一半哈。
如果对本文有什么疑问的,欢迎提出来一起探讨。我也在学习中^.^。