加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

依赖倒置原则

发布时间:2020-12-14 05:03:53 所属栏目:百科 来源:网络整理
导读:1.定义:高层模块不应该依赖低层模块,二者都应该依赖其抽象 2.抽象不应该依赖细节,细节应该依赖抽象 3.针对接口编程,不要针对实现编程 4.优点:可以减少类间的耦合性、提高系统稳定性,提高代码可读性和可维护性,可降低修改程序所造成的风险 5.实例目录p

1.定义:高层模块不应该依赖低层模块,二者都应该依赖其抽象

2.抽象不应该依赖细节,细节应该依赖抽象

3.针对接口编程,不要针对实现编程

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

5.实例目录package

6.UML类图

7.代码

1 package com.geely.design.principle.dependenceinversion;
2 
3 public interface ICourse {
4     void studyCourse();
5 }
1 package com.geely.design.principle.dependenceinversion;
2 
3 public class JavaCourse implements ICourse{
4     public void studyCourse() {
5         System.out.println("Geely在学习Java课程");
6     }
7 }
1 package com.geely.design.principle.dependenceinversion;
2 
3 public class PythonCourse implements ICourse {
4     public void studyCourse() {
5         System.out.println("Geely在学习Python课程");
6     }
7 }
1 package com.geely.design.principle.dependenceinversion;
2 
3 public class FECourse implements ICourse {
4     public void studyCourse() {
5         System.out.println("Geely在学习FE课程");
6     }
7 }
 1 package com.geely.design.principle.dependenceinversion;
 2 
 3 public class Geely {
 4     private ICourse iCourse;
 5 
 6     public Geely(){
 7 
 8     }
 9     public Geely(ICourse iCourse){
10         this.iCourse = iCourse;
11     }
12     public void studyImoocCourse(){//ICourse iCourse
13         iCourse.studyCourse();
14     }
15 
16     public void setiCourse(ICourse iCourse){
17         this.iCourse = iCourse;
18     }
19     /*public void studyJavaCourse(){
20         System.out.println("Geely在学习Java课程");
21     }
22     public void studyFECourse(){
23         System.out.println("Geely在学习FE课程");
24     }
25     public void studyPythonCourse(){
26         System.out.println("Geely在学习Python课程");
27     }*/
28 }
 1 package com.geely.design.principle.dependenceinversion;
 2 
 3 public class Test {
 4     public static void main(String[] args){
 5         /*Geely geely = new Geely();
 6         geely.studyJavaCourse();
 7         geely.studyFECourse();
 8         geely.studyPythonCourse();*/
 9 
10         /*Geely geely = new Geely();
11         geely.studyImoocCourse(new JavaCourse());
12         geely.studyImoocCourse(new FECourse());
13         geely.studyImoocCourse(new PythonCourse());*/
14 
15         /*Geely geely = new Geely(new JavaCourse());
16         geely.studyImoocCourse();
17         Geely geely2 = new Geely(new FECourse());
18         geely2.studyImoocCourse();*/
19 
20         Geely geely = new Geely();
21         geely.setiCourse(new JavaCourse());
22         geely.studyImoocCourse();
23         geely.setiCourse(new FECourse());
24         geely.studyImoocCourse();
25     }
26 }

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读