依赖倒置原则

2020-01-09  本文已影响0人  Java天天

定义:高层模块不应该依赖低层模块,二者都应该依赖其抽象;抽象不应该依赖细节;细节应该依赖抽象。

解決方法:将类A修改为依赖接口I,类B和类C各自实现接口I,类A通过接口I间接与类B或者类C发生联系,则会大大降低修改类A的几率

代码:

class Newspaper implements IReader { 

    public String getContent(){ 

        return "林书豪17+9助尼克斯击败老鹰……"; 

    } 

class Book implements IReader{ 

    public String getContent(){ 

        return "很久很久以前有一个阿拉伯的故事……"; 

    } 

class Mother{ 

    public void narrate(IReader reader){ 

        System.out.println("妈妈开始讲故事"); 

        System.out.println(reader.getContent()); 

    } 

public class Client{ 

    public static void main(String[] args){ 

        Mother mother = new Mother(); 

        mother.narrate(new Book()); 

        mother.narrate(new Newspaper()); 

    } 

}

解析:原本Mother类与Book类直接耦合时,Mother类必须等Book类编码完成后才可以进行编码,因为Mother类依赖于Book类。修改后的程序则可以同时开工,互不影响,因为Mother与Book类一点关系也没有。

传递依赖关系办法:

1.依赖接口(上面的方法)

2.构造方法传递

3.setter方法传递

出处:

作者:YangLinWei

链接:https://www.jianshu.com/p/0af818d03df0

上一篇 下一篇

猜你喜欢

热点阅读