多一些Aha Time,发现技术的美妙🍺|

啊原来是这样呀

园龄:8年3个月粉丝:3关注:9

那些年搞不懂的高深术语——依赖倒置•控制反转•依赖注入•面向接口编程

本文引用转载自https://www.cnblogs.com/aoyeyuyan/p/5495219.html

看完大有裨益。

 

什么是程序

微观:数据+操作
中观:数据结构+算法
宏观:对象+消息

 

内聚

 自身的内容自身保管,自身的事情自身做,对外界呈现自己的状态和行为。

 

依赖

在内聚的同时,也要对外开放。
一个对象,往往需要跟其他对象打交道,既包括获知其他对象的状态,也包括依赖其他对象的行为,而一旦这样的事情发生时,我们便称该对象依赖于另一对象。

 

耦合

存在依赖关系,即存在耦合。

 

依赖倒置

1.高层不应依赖于底层,它们都应该依赖抽象;
2.抽象不依赖于细节,细节应该依赖抽象;

 

控制反转

当Client调用server时,这个叫做一般的控制;而当server调用Client时,就是我们所说的控制反转,同时我们也将这个调用称为“回调”。
控制反转跟依赖倒置都是一种编程思想,依赖倒置着眼于调用的形式,而控制反转则着眼于程序流程的控制权

 

 

依赖注入

A对象依赖于B对象,等价于A对象内部存在对B对象的“调用”,而前提是A对象内部拿到了B对象的引用。
其他对象的获取方式:
(1)主动实例化
(2)构造器注入
(3)属性注入
(4)方法注入
区别在于所依赖的对象是否由自己来完成创建。
“依赖注入”常常用于扩展,尤其是在开发框架的设计中。从某种意义上来说,任何开发框架,天生都是不完整的应用程序。因此,一个优秀的开发框架,不仅要让开发者能够重用这些久经考验的的卓越的解决方案,也要让开发者能够向框架中插入自定义的业务逻辑,从而灵活自由地适应特定的业务场景的需要——也就是说要具备良好的可扩展性。

 

面向接口编程

面向接口,就意味着面向抽象。
总结来看,依赖倒置、控制反转、依赖注入都围绕着“解耦合”的问题,而同时自始至终又都是“面向接口编程”的方法。
对于理想软件的期待常被概括为“高内聚,低耦合”,面向对象”这个表述更加侧重于“高内聚”,“面向接口”的表述则更加侧重于“低耦合”——不过是同一事物的不同侧面。

本文作者:啊原来是这样呀

本文链接:https://www.cnblogs.com/OhOfCourse/p/17163194.html

版权声明:本作品采用知识共享署名-非商业性使用-禁止演绎 2.5 中国大陆许可协议进行许可。

posted @   啊原来是这样呀  阅读(16)  评论(0编辑  收藏  举报
点击右上角即可分享
微信分享提示
评论
收藏
关注
推荐
深色
回顶
收起