首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >设计模式-依赖倒置

设计模式-依赖倒置

作者头像
yiduwangkai
发布2020-04-24 17:27:57
发布2020-04-24 17:27:57
68100
代码可运行
举报
文章被收录于专栏:大数据进阶大数据进阶
运行总次数:0
代码可运行

首先我们来看一下定义:

1.高层模块不应该依赖低层模块,两者都应该依赖其抽象

2.抽象不应该依赖细节

3.细节应该依赖抽象

下面来看一下uml图

代码语言:javascript
代码运行次数:0
运行
复制
public interface IDriver {

  //是司机就应该会驾驶汽车

   public void drive(ICar car);

}

 

public class Driver implements IDriver{

    //司机的主要职责就是驾驶汽车

    public void drive(ICar car){

        car.run();

    }

}

public interface ICar {

    //是汽车就应该能跑

    public void run();

}

public class Benz implements ICar{

    //汽车肯定会跑

    public void run(){

        System.out.println("奔驰汽车开始运行...");

    }

}

public class BMW implements ICar{

    //宝马车当然也可以开动了

    public void run(){

        System.out.println("宝马汽车开始运行...");

    }

}

public class Client {

    public static void main(String\[\] args) {

        IDriver zhangSan = new Driver();

        ICar benz = new Benz();

        //张三开奔驰车

        zhangSan.drive(benz);

    }

}

总结:

1.每个类尽量都有接口或抽象类,或者抽象类和接口两者都具备

2.变量的表面类型尽量是接口或者是抽象类

3.任何类都不应该从具体类派生

4.尽量不要覆写基类的方法

5.结合里氏替换原则使用

ps:

1.构造函数传递依赖对象

2.Setter方法传递依赖对象

3.接口声明依赖对象

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档