首页 > 编程知识 正文

一个原则四个倒置,逻辑关系的倒置

时间:2023-05-04 14:43:03 阅读:162692 作者:4556

依赖倒置原则的核心思想是面向接口编程,而不面向实现编程。

例1 )顾客购物程序。 分析显示,顾客购物后再从成都商店和兰州商店购物。 uml图如下所示

1 .顾客从很多商店购物,抽象出一个商店的界面,

public interface Shop { void sell (; )2.兰州和成都商家实现shop购买方式

publicclasschengdushopimplementsshop { @ overridepublicvoidsell ((system.out.println ) ) (买成都特产); }购买publicclasslanzhoushopimplementsshop { @ overridepublicvoidsell ((system.out.println ) )兰州特产:拉面); }3.客户购买方式

public class custom { public void buy (shop shop ) { shop.sell; (4.实现

=new(//购买兰州特产. buy (newlanzhoushop ) ); //买成都特产custom.buy (newchengdushop ) ); 例2学生学习课程(java,c )。 )

UML图如下所示

1 .抽象课程的学习动作。

publicinterfacecourse { void study (; }2.2两种课程实现course

publicclassjavacourseimplementscourse { @ overridepublicvoidstudy () } { system.out.println (上Java课程() ); } publicclasscpluscourseimplementscourse { @ overridepublicvoidstudy () { System.out.println (学习C课程) ); }3.学生学习课程的方法

public class Student { /** *是注入* @ param course */public void study (course.study ); (4.实现

Student student=new Student (; sudent.study(newJavacourse ) ); sudent.study(newcpluscourse ) ); 此时注入方式的通过依赖注入有结构注入(根据结构方法)和set注入(根据set方法(在单个例子中只能通过该时钟的fangs ) )两种注入方式。

Student类

/** *课程属性* /私有课程; 公共void study { course.study }; } /** * set注入*/publicvoidsetcourse (course course ) { this.course=course; } /** *结构注入* @ param course */public student (course ) { this.course=course; }实现方式

/** *结构注入*/System.out.println ()结构方式注入: ); sudent student=new student (newjavacourse ) ); student.study (; /** * set注入*/System.out.println (; system.out.println(set方式注入: ); sudent.set course (newcpluscourse ) ); student.study (;

参考资料:

1.http://c.biancheng.net/view/1326.html

代码地址: https://gitee.com/zhoujie1/design-mode-and-principle.git

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。