为控制反转更名

为控制反转更名

 

 

作者:zfive5(zidong)

邮件:zfive5@yahoo.com.cn


控制反转的本质是为了解耦,让两个逻辑单元的依赖变得没有那么强,但做不到完全消除依赖,所以在有些书上又提到了依赖倒转,但对于第一次听到这样的名词还是丈二和尚摸不着头脑.其实也没有那么难,其实大道至简,就像两点之间确定一条直线那样朴实简明,

 

软件之所以引进这个模式那个原则,无非就是解决扩展和维护的问题,随着你我参与软件项目的时间增多,尤其是产品,一版版的增加无止境的需求,还得考虑人员的不断流动变化, 这种设计思想必然在设计之初,就必须遵守。

 

在解决软件的问题大部分的时候都是引入了中间层的方式来解决,在IT领域里把这种方式应用的淋漓精致一个是TCP/IP,另一个就是硬件设计中的接口标准.

 

l      TCP/IP就像洋葱一样层层的把数据封装,下层并不知道上层的格式,只是知道就是一堆数据.其中每一层都是责任单一,物理层就是完成高低电平的,网络层就是组织IP数据的.这里有引出了“责任单一原则”.

 

l      另一个就是硬件之间的接口,例如:PCI和USB, 这个又和OO中接口比较像. 主机和MP3设备之间都是依赖USB,而不是主机今天实现和A型号的MP3连通,明天又和B型号的MP3连.

 

哈哈,说到这里,给它起一个名字,  ----间接原则。

 

是否发现软件设计还比不上硬件设计方面有内涵,我个人感觉这跟软件犯错成本要比硬件或其他低.正如大家很少听到软件召回, 只是可能需要不停的打补丁.10年的从业经验告诉我实际上就是这样处理的, 前些日子暴风的召回又多半有炒作的嫌疑.说了这么多少,其实发现没有软件就是使用者和硬件之间的接口,

 

道生一,一生二,二生三,三生万物。

 

回到解决依赖问题,例如我A依赖B,通过分析我们引入C,当然肯定不是简单引入C,其实设计分析的灵魂就是提取一个稳定的C,这样A和B都会因为稳定C的引入,而解耦了,到这里是否感觉到依赖转移了.正如下图所表达的一样:

 

 

 

控制反转应该叫“依赖解耦”

 

 


评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值