• 6大设计原则之依赖倒置原则


    依赖倒置原则的定义

    依赖倒置原则的原始定义如下:

    High level modules should not depend upon low level modules. Both should depend upon abstractions. Abstractions should not depend upon details. Details should depend upon abstractions.

    翻译过来,包含如下三层含义:

    1. 高层模块不应该依赖低层模块,两者都应该依赖其抽象
    2. 抽象不应该依赖于细节
    3. 细节应该依赖于抽象

    高层模块和低层模块容易理解,每一个逻辑的实现都是由原子逻辑组成的,不可分割的原子逻辑就是低层模块,原子逻辑的再组装就是高层模块.抽象就是指 接口或抽象类,两者都不能被实例化;细节就是实现类.

    依赖倒置原则在Java语言中表现为:

    1. 模块间的依赖通过抽象产生,实现类之间不发生直接依赖,其依赖关系是通过接口或抽象类产生的
    2. 接口或抽象类不依赖于实现类
    3. 实现类依赖接口或抽象类

    依赖倒置原则的好处

    采用依赖倒置原则可以减少类间的耦合性,提高系统的稳定性,降低并行开发引起的风险,提高代码的可读性和可维护性.

    依赖的三种写法

    在开发中,对象的依赖关系有三种方式来传递

    1.构造函数传递依赖对象

    在类中通过构造函数声明依赖对象,这种方式叫做构造函数注入

    2.Setter方法传递依赖对象

    在抽象中设置Setter方法声明依赖关系, 在对象创建后,调用方法注入,这种方式叫做 Setter依赖注入

    3.接口声明依赖对象

    在具体方法中声明依赖对象,在调用方法时将对象传入, 这种方式叫做 接口注入


    依赖倒置原则的本质就是通过抽象使各个类或模块的实现彼此独立,互不影响,实现模块间的松耦合,我们怎么在项目中使用能,遵循以下几个原则就可以:

    1. 各个类尽量都有接口或抽象类,或者两者都有
    2. 变量的表面类型尽量是接口或者抽象类,不是绝对,比如一个工具类,一般是不需要接口或抽象类的
    3. 任何类都不应该从具体类派生
    4. 尽量不要覆写基类的方法
    5. 结合里氏替换原则(父类出现的地方,子类就可以出现),例如,接口负责定义public属性和方法,并且声明与其他对象的依赖关系,抽象类负责公共构造部分的实现,实现类精确的实现业务逻辑同时在适当的时候对父类进行细化

    依赖倒置原则是6个设计原则中最难以实现的原则,他是实现开闭原则的重要途经,依赖倒置原则没有实现,就别想实现对扩展开放,对修改关闭.在项目中,只要记住是"面向接口编程"就基本抓住了依赖倒置原则的核心

  • 相关阅读:
    14_java之变量|参数|返回值|修饰符
    NYOJ 202 红黑树 (二叉树)
    NYOJ 138 找球号(二) (哈希)
    NYOJ 136 等式 (哈希)
    NYOJ 133 子序列 (离散化)
    NYOJ 129 树的判定 (并查集)
    NYOJ 117 求逆序数 (树状数组)
    NYOJ 93 汉诺塔 (数学)
    HDU 2050 折线分割平面 (数学)
    天梯赛L2-008 最长对称子串 (字符串处理)
  • 原文地址:https://www.cnblogs.com/hujingnb/p/10171515.html
Copyright © 2020-2023  润新知