依赖倒置

1、依赖倒置的场景需求:

1) 模块A、B互相依赖,耦合较大,希望改成单向依赖

2)模块A是底层,模块B是上层,底层不应该调用上层,即只允许B调用A。

 

2、未倒置前,A调用B:
module_a_func
  调用module_b_func(in_data, out_data)

module_b:
  提供module_b_func

 

3、倒置后,B调用A:

module_a:
提供func_register(int modid, int (*proc)func(indata_t in, outdata_t out));
module_a_func:
  //call register func

module_b:
  提供module_b_func
在模块B或其他初始化注册函数:
func_register(b, module_b_func)

 

4、更进一步,模块C也调用func_register注册一个函数,模块A分别调用B/C注册的函数,这就是所谓的观察者模式了

module_c:
  提供module_c_func
在模块C或其他初始化注册函数:
func_register(c, module_c_func)

 

转载于:https://www.cnblogs.com/soul-stone/p/10689763.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值