依赖倒置
2021-01-27 20:42:13 0 举报
对依赖倒置原则图形化解读
作者其他创作
大纲/内容
具体类型2
高层模块和底层模块都依赖抽象
高层模块依赖底层模块
规范子类实现要求实现什么服务
基于抽象(稳定)处理处理方式统一
客户端
...
多态(运行期,动态单分派)虚拟机根据真实类型处理,相当于判断过程
对子类归类提取共性(复用)
抽象:1.隔离变化,中间隔离层2.标准和规范,规范客户端使用,规范子类实现3.接近事物本质稳定4.归类
具体类型1
根据具体类型处理(处理方式不统一)
依赖
编译期依赖实现
编译期依赖抽象,运行期依赖实现
特点
实现属于战术性,多变,怎么做,方式
抽象属于战略性,稳定,做什么,本质
结构
不稳定
稳定
复用
无
客户端、抽象
扩展
修改客户端源码
增加子类,注入子类
变化
对已知变化硬编码,不包含未知变化
允许规范的未知的变化
处理
根据类型处理
统一处理
判断
编译期、程序员静态编码
运行期、虚拟机动态计算
客户端伪码(编译期)if (o instanceof 具体类型1){ o.method1();} else if (o instanceof 具体类型2){ o.method2();} else if (...) { o.method3();}
增加新类型影响客户端
对客户端的承诺能提供什么服务
孙兵 2020-01-27
抽象
客户端伪码(编译期)o.method()
0 条评论
下一页