博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
设计模式_02_依赖倒置原则
阅读量:4161 次
发布时间:2019-05-26

本文共 1598 字,大约阅读时间需要 5 分钟。

依赖倒置原则

  • 定义:高层模块不应该依赖底层模块,二者都应该依赖其抽象
  • 抽象不应该依赖细节;细节应该依赖抽象
  • 针对接口编程,不要针对实现编程
  • 优点:可以减少类之间的耦合性、提高系统稳定性,提高代码可读性和可维护性,可降低修改程序所造成的风险
public interface Course {
void study();}
public class JavaCourse implements Course {
@Override public void study() {
System.out.println("学习java课程"); }}
public class PythonCourse implements Course {
@Override public void study() {
System.out.println("学习Python课程"); }}
public class SparkCourse implements Course {
@Override public void study() {
System.out.println("学习Spark课程"); }}
public class Tom {
private Course course; public Tom(Course course) {
this.course = course; } public Tom() {
} public void wantToStudy(Course course) {
course.study(); } public void wantToStudy() {
course.study(); } public void setCourse(Course course) {
this.course = course; }}
public class Test {
public static void main(String[] args) {
System.out.println("----------- v1 -------------"); Tom tom = new Tom(); tom.wantToStudy(new JavaCourse()); tom.wantToStudy(new PythonCourse()); tom.wantToStudy(new SparkCourse()); System.out.println("----------- v2 ----------"); Tom tom1 = new Tom(new JavaCourse()); tom1.wantToStudy(); System.out.println("----------- v3 ----------"); Tom tom2 = new Tom(); tom2.setCourse(new JavaCourse()); tom2.wantToStudy(); tom2.setCourse(new PythonCourse()); tom2.wantToStudy(); }}

类图:

在这里插入图片描述
执行结果:
在这里插入图片描述

转载地址:http://pzixi.baihongyu.com/

你可能感兴趣的文章
HTML5学习之——HTML 5 Canvas
查看>>
HTML5学习之——HTML5 内联 SVG
查看>>
HTML5学习之——HTML 5 服务器发送事件
查看>>
SVG学习之——HTML 页面中的 SVG
查看>>
SVG 形状学习之——SVG 矩形<rect>
查看>>
SVG 形状学习之——SVG圆形
查看>>
SVG 滤镜学习之——SVG 滤镜
查看>>
mysql中用命令行复制表结构的方法
查看>>
hbase shell出现ERROR: org.apache.hadoop.hbase.ipc.ServerNotRunningYetException
查看>>
让代码变得更优雅-Lombok
查看>>
解决Rhythmbox乱码
查看>>
豆瓣爱问共享资料插件发布啦
查看>>
Ubuntu10.10 CAJView安装 读取nh\kdh\caj文件 成功
查看>>
kermit的安装和配置
查看>>
vim 配置
查看>>
openocd zylin
查看>>
进程创建时文件系统处理
查看>>
进程创建时信号处理函数处理
查看>>
进程创建时信号处理
查看>>
进程创建时内存描述符处理
查看>>