七个原则2-依赖倒置原则

七个原则2-依赖倒置原则

  • 定义:高层模块不应该依赖底层模块,二者都应该依赖其抽象
  • 抽象不应该依赖细节,细节应该依赖抽象
  • 针对接口编程,不要针对实现编程
  • 优点:可以减少类间的耦合性、提高系统的稳定性,提高代码可读性和可维护性,可降低修改程序所造成的风险

示例-依赖倒置原则UML

示例-依赖倒置原则UML

ICourse接口

public interface ICourse {
    void studyCourse();
}

JavaCourse类

public class JavaCourse implements ICourse {
    @Override
    public void studyCourse() {
        System.out.println("cc学习Java的课程");
    }
}

FECourse

public class FECourse implements ICourse {
    @Override
    public void studyCourse() {
        System.out.println("cc学习前端的课程");
    }
}

Cc类

public class Cc {
    private ICourse iCourse;

    public Cc setICourse(ICourse iCourse){
        this.iCourse = iCourse;
        return this;
    }

    public void studyCourse(){
        iCourse.studyCourse();
    }
}

Test类

public class Test {
    //v1 直接对象方法实现
//    public static void main(String[] args) {
//        Cc cc = new Cc();
//        cc.studyJavaCourse();
//        cc.studyFECourse();
//    }

    //v2 方法传参实现
//    public static void main(String[] args) {
//        Cc cc = new Cc();
//        cc.studyCourse(new JavaCourse());
//        cc.studyCourse(new FECourse());
//    }

    //v3 构造传参实现
//    public static void main(String[] args) {
//        Cc cc = new Cc(new JavaCourse());
//        cc.studyCourse();
//    }
    //v4 增加设置方法
    public static void main(String[] args) {
        Cc cc = new Cc();
        cc.setICourse(new JavaCourse())
                .studyCourse();
        cc.setICourse(new FECourse())
                .studyCourse();
    }
}
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 转载标注声明:http://www.uml.org.cn/sjms/201211023.asp 目录:[设计模式六...
    Bloo_m阅读 801评论 0 7
  • 【第1杀】 我们来跳一曲颤栗的华尔兹,讴歌着死亡吧!你说好吗?(炎无惑) 【第2杀】 难道你们也喜欢这甜美的血腥味...
    陵仲阅读 3,551评论 0 2
  • “知不知道思念一个人的滋味,就像喝了一杯凉凉的水,然后用很长时间一颗颗流成热泪;知不知道忘记一个人的滋味,就像欣赏...
    方竹竹阅读 351评论 0 0
  • 我眼中的射雕三部曲 微寒 第一次看的武侠小说就是《射雕英雄传》,然后一口气把射雕三部曲都看了个精光。很佩服金庸先生...
    微微寒阅读 818评论 6 3

友情链接更多精彩内容