依赖倒置原则(设计模式_05)

来源:互联网 发布:项目管理数据库设计 编辑:程序博客网 时间:2024/04/29 11:27

依赖倒转原则就是高层模块不能依赖底层模块,他们两个应该依赖抽象,而抽象就是接口或者抽象类,是管理他们两个的父类,由于这种关系,所以抽象不能依赖细节,而细节要依赖抽象。

我们直接用案例来分析就明白了:

// 定义一个语言接口public interface ILanguage {    // 定义一个输出语言的方法    public String getLanguage();}// Java语言类public class Java implements ILanguage {    public String getLanguage() {        return "正在学习Java语言开发...";    }}// C语言类public class C implements ILanguage {    public String getLanguage() {        return "正在学习C语言开发...";    }}// 定义一个学生,学习编程语言public class Student {    private ILanguage iLanguage = null;    public Student(ILanguage iLanguage) {        this.iLanguage = iLanguage;    }    public void studyMethod() {        System.out.println("小明同学在学习:");        if (null != iLanguage) {            System.out.println(iLanguage.getLanguage());        }    }}// 客户端操作public class Main {    public static void main(String[] args) {        Student student = null;        student = new Student(new C());        student.studyMethod();        student = new Student(new Java());        student.studyMethod();    }}

常规的写法是,Student直接和编程语言交互,这样的话就耦合性比较高,从而也是高层模块依赖底层模块,这个时候需要用一个抽象,让细节依赖抽象,而这个 ILanguage 接口 就是抽象,从而让高层模块与底层模块没有依赖。

总之一句话解释就是:你理解了面向接口编程,你就理解了依赖倒置原则。

谢谢大家的观看,更多精彩技术博客,会不断的更新,请大家访问,
刘德利CSDN博客, http://blog.csdn.net/u011967006

1 0
原创粉丝点击