七个原则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();
}
}
网友评论