快捷搜索: 王者荣耀 脱发

Java23种设计模式七大原则--依赖倒置原则

一.定义:

依赖倒置原则(Dependence Inversion Principle,DIP)是 Object Mentor 公司总裁罗伯特·马丁(Robert C.Martin)于 1996 年在 Report 上发表的文章。 依赖倒置原则的原始定义为:抽象不应该依赖细节,细节应该依赖抽象。其核心思想是:要面向接口编程/面向抽象编程,不要面向实现编程。 依赖倒置原则是实现开闭原则的重要途径之一,它降低了客户与实现模块之间的耦合。 使用接口或者抽象类的目的是制定好规范和契约,而不去涉及任何具体的操作,把展现细节的任务交给它们的实现类去完成。

二.作用:

依赖倒置原则的主要作用如下。

    降低类间的耦合性。 提高系统的稳定性。 减少并行开发引起的风险。 提高代码的可读性和可维护性。

三.实现方法:

  1. 每个类尽量提供接口或抽象类,或者两者都具备。
  2. 变量的声明类型尽量是接口或者是抽象类。
  3. 任何类都不应该从具体类派生。
  4. 使用继承时尽量遵循里氏替换原则。

四.代码演示:

1.接口类:

package com.zking.design.dip;

/**
 * @description: 依赖倒置原则--主题
 * @author: codinglife
 * @time: 2021/5/6 10:35
 */
public interface Subject {
    public void attri();  //拥有属性
}

2.子类实现接口:

package com.zking.design.dip;

/**
 * @description: 依赖倒置原则--Windows颜色
 * @author: codinglife
 * @time: 2021/5/6 10:35
 */
public class WindowsColorSubject implements Subject {
    @Override
    public void attri() {
        System.out.println("Windows颜色属性");
    }
}
package com.zking.design.dip;


/**
 * @description:依赖倒置原则--Windows声音
 * @author: codinglife
 * @time: 2021/5/6 10:51
 */
public class WindowsVoiceSubject implements   Subject{
    @Override
    public void attri() {
        System.out.println("Windows声音属性");
    }
}

3.具体调用:

package com.zking.design.dip;

/**
 * @description:依赖倒置原则--windows主题
 * @author: codinglife
 * @time: 2021/5/8 16:38
 */
public class WindowsSubject {
    public void haveAttri(Subject subject){
        subject.attri();
    }
}

4.测试调用:

package com.zking.design.dip;


/**
 * @description: 里氏替换原则--测试
 * @author: codinglife
 * @time: 2021/5/6 10:54
 */
public class SubjectMain {

    public static void main(String[] args) {
        WindowsSubject windowsSubject= new WindowsSubject();

        windowsSubject.haveAttri(new WindowsColorSubject());  //windows颜色
        windowsSubject.haveAttri(new WindowsVoiceSubject());  //windows声音


    }


}

5.结果:

以上这是对接口的规范定义

对抽象类的规范定义:

 

经验分享 程序员 微信小程序 职场和发展