美文网首页
搬砖方法论:Dependency Inversion Princ

搬砖方法论:Dependency Inversion Princ

作者: su9257_海澜 | 来源:发表于2021-03-29 22:54 被阅读0次

    定义

    DIP原则定义中核心的两句描述为如下两条:

    • 高层次的模块不应该依赖于低层次的模块,两者都应该依赖于抽象接口(抽象)。
    • 抽象接口(抽象)不应该依赖于具体实现。而具体实现则应该依赖于抽象接口(抽象)。

    三条原则

    其他原则或者设计模式的解耦手段有很多,DIP的解耦手段就是确定不变,以不变应对需求的多变性,只有不变才是稳定的。
    什么是不变?不变就是抽象

    • 代码中多用抽象接口,尽最大可能避免使用具体实现类,且实现类中要一直确定组合优于继承的方式。
    • virtual在设计时就应该是一个没有任何逻辑的空函数。
    • 在抽象设计时,应用Open这类名称代替如OpenInventory含有具体实现细节的名称。

    一个小示例

    image

    如上图所示的依赖关系,View依赖Manager,Manager依赖Plugin,Plugin依赖View。这种依赖关系有2个问题。

    • 这种依赖迁移性(Transitivity)会造成View也依赖于Plugin
    • 这是一种循环依赖,是设计上非常忌讳的事情。

    为了打破这种迁移性和循环依赖,我们添加抽象接口IView,让View和Manager都依赖于Iview,这时View和Manager的关系就反转了或者说倒置了。
    当然Plugin和View也可以用这种方式进行隔离。对于这种不稳定的依赖(View、数据库、插件等),我们都可以用抽象接口的方式将其隔离,对依赖方向进行反转。


    更多文章详见主页:www.aihailan.com

    相关文章

      网友评论

          本文标题:搬砖方法论:Dependency Inversion Princ

          本文链接:https://www.haomeiwen.com/subject/yqwihltx.html