【笔记】依赖倒置原则

依赖倒置原则

定义

  • 高层模块不应该依赖底层模块,二者都应该依赖其抽象
  • 抽线不应该依赖细节,细节应该依赖于抽象
  • 针对接口编程,而不是针对实现编程

优点

  • 可以减少类之间的耦合性,提高系统的稳定性,提高代码的可读性和维护性,可降低修改程序所造成的风险

代码示例

/**
 * 依赖倒置原则
 */
public class Dependent {
    public static void main(String[] args) {
        Jack jack = new Jack();
        jack.setCourse(new JavaCourse());
        jack.StudyCourse();
        jack.setCourse(new FECourse());
        jack.StudyCourse();
        jack.setCourse(new PythonCourse());
        jack.StudyCourse();
    }
}

/**
 * 课程
 */
interface Course {
    void studyCourse();
}

/**
 * java课程
 */
class JavaCourse implements Course {

    @Override
    public void studyCourse() {
        System.out.println("jack在学习java课程");
    }
}

/**
 * FE课程
 */
class FECourse implements Course {

    @Override
    public void studyCourse() {
        System.out.println("jack在学习FE课程");
    }
}

/**
 * Python课程
 */
class PythonCourse implements Course {

    @Override
    public void studyCourse() {
        System.out.println("jack在学习Python课程");
    }
}

class Jack {

    private Course course;

    public void setCourse(Course course) {
        this.course = course;
    }

    public void StudyCourse() {
        course.studyCourse();
    }
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值