设计原则——依赖倒置原则

用户头像
GalaxyCreater
关注
发布于: 2020 年 06 月 17 日



——敏捷的不是过程,而是要靠设计的敏捷



原则内容是什么?

  • 高层不依赖低层,而是都依赖抽象

  • 抽象不依赖实现,而是实现依赖抽象。



解决了什么问题?

  1. 面向过程思维方式往往是高层调低层,层层调用,如果修改了低层,影响会层层上传。

  2. 高层更接近客户,而客户的需求会不断变更

  3. 要实现高内聚低耦合的目标



对客户程序来说,因为我更接近业务,所以由我来面向业务定义接口;接口谁来实现,我不关心,我只管调用。实现细节会随需求不断变动,如果抽象由高层定义,只要抽象不变,客户程序就不需要变化,降低了客户与实现模块间的耦合。

策略模式遵循了本原则。



例子



好莱坞规则:Don't call me, I'll call you

  • 在框架设计中使用。

  • 框架提供抽象,你的实现依赖它的抽象,你负责实现它提供的接口的具体逻辑;

  • 框架会调用你,你不要调用框架。



  • 一个简化的http框架例子:



HttpMaster有多个Worker组成的线程池,接收http请求并派发给Worker处理,Worker里的Connection调抽象方法Handle。

添加业务逻辑,只需要继承Command的处理类,实现Handle方法即可。当有连接进来,框架会主动调用响应的Command子类来处理。



发布于: 2020 年 06 月 17 日 阅读数: 52
用户头像

GalaxyCreater

关注

还未添加个人签名 2019.04.21 加入

还未添加个人简介

评论

发布
暂无评论
设计原则——依赖倒置原则