Dependence Inversion Principle

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Dependence Inversion Principle相关的知识,希望对你有一定的参考价值。

设计原则之依赖反转原则


动机:当类里面含有属性类,如果直接写类,代码太死,可以考虑将属性类变成接口,方便扩展。

结论:高级类不直接使用低级类,使用接口作为抽象层。Creational Design Patterns可以帮助我们实现依赖反转原则,比如工厂模式,抽象工厂模式,原型模式。


Bad Example:

缺点:

    1、当出现一个新的工人superWorker,不得不修改Manager的源代码

    2、Manger里面已经存在的代码也会被影响,比如方法里面用到Worker

class Worker {

    public void work() {

        //working

    }

}

class Manager{

    Work worker;



    public void setWorker(Worker w) {

        worker = w;

    }


    public void manage() {

        worker.work();

    }

}


class SuperWorker {

    public void work() {

        //.... working much more

    }

}


Good Example:

    好处:

        1、添加superWorker不需要修改Manager类

        2、对Manager最小的修改风险

interface IWorker {

    public void work();

}


class Worker implements IWorker{

    public void work() {

        // ....working

    }

}


class SuperWorker  implements IWorker{

    public void work() {

        //.... working much more

    }

}


class Manager {

    IWorker worker;


    public void setWorker(IWorker w) {

        worker = w;

    }


    public void manage() {

        worker.work();

    }

}


本文出自 “不死的小强” 博客,请务必保留此出处http://qianray.blog.51cto.com/4607992/1856666

以上是关于Dependence Inversion Principle的主要内容,如果未能解决你的问题,请参考以下文章

常用编码工具英文词汇

Salesforce LWC学习 Dependence Picklist实现

5.2 部分依赖图 (Partial Dependence Plot, PDP)

5.2 部分依赖图 (Partial Dependence Plot, PDP)

android studio 之dependence添加依赖maven仓库中的项目出错

偏依赖图(Partial Dependence Plots)是什么?排列重要性(Permutaion Importance)是什么?如何解读?有什么意义?