码迷,mamicode.com
首页 > 其他好文 > 详细

依赖倒转原则

时间:2017-04-27 10:26:20      阅读:162      评论:0      收藏:0      [点我收藏+]

标签:设计   观察   容器   应该   结构化   方向   技术   event   总线   

什么是依赖倒转,看到名字一下就想到依赖方向变了

 

原来A依赖B的现在倒转了,成了B依赖A这样有什么好处

 

以公司最近在做的组件化模块举例子

 

A代表销项开票模块

 

B代表库存操作模块

 

原来A开票的都是直接操作的库存,A依赖B.

 

如果没有库存B,A销项就用不了 现在重新设计

 

将原来写在A模块里面与库存相关操作的逻辑封装到B模块里面去

 

使得A在开票的时候,不在依赖具体的库存,没有库存也可以开票

 

但大多数时候又是需要库存B的,怎么办

 

B依赖A, B必须知道A A不必知道B  或者通过第三方将AB完全隔离

 

A操作到库存的时候,只要向消息栈发送消息,消息栈会把消息发送给库存

 

这样当消息来的时候,库存就可以执行原来在开票模块里面的逻辑

 

来达到开票与库存关联的操作,实际上又可以不受库存的限制

 

有库存可以用,没有也可用,库存就是A依赖的一个具体实现

 

原则就是抽象不应该依赖细节,细节应该依赖抽象

 

高层模块不应该依赖低层模块,两个都应该依赖抽象

 

技术分享

 

技术分享

 

结构化编程和面向对象编程的区别:

技术分享

公司在用的rafy里面,有几种解除耦合的方式

 

一种是事件总线:EventBus 向事件总线订阅事件 发布事件的时候,订阅者就会收到消息通知,

一种是通过域控制器,注册事件以观察者的模式来监听事件源,有消息通过的时候自动更新

 

一种是通过IOC容器,将事先定义好的接口与实现对应的放入容器里,用的时候直接调用

 

接口就能返回的对应的实现

 

依赖倒转原则

标签:设计   观察   容器   应该   结构化   方向   技术   event   总线   

原文地址:http://www.cnblogs.com/gdnyfcuso/p/6772315.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!