专栏首页深度学习计算机视觉倒置依赖原则(DIP)

倒置依赖原则(DIP)

原则 A.高层次的模块不应该依赖于低层次的模块,他们都应该依赖于抽象。 B.抽象不应该依赖于具体实现,具体实现应该依赖于抽象 概念 依赖倒置原则(Dependence Inversion Principle)是程序要依赖于抽象接口,不要依赖于具体实现。简单的说就是要求对抽象进行编程,不要对实现进行编程,这样就降低了客户与实现模块间的耦合。

依赖倒置有三种方式来实现 1、通过构造函数传递依赖对象; 比如在构造函数中的需要传递的参数是抽象类或接口的方式实现。 如代码

public class Notification
{
    private IMessageService _iMessageService;

    public Notification(IMessageService _messageService)
    {
        this._iMessageService = _messageService;
    }
    public void PromotionalNotification()
    {
        _iMessageService.SendMessage();
    }
}

2、通过setter方法传递依赖对象; 即在我们设置的setXXX方法中的参数为抽象类或接口,来实现传递依赖对象。 如代码

public interface IDriver{
    public void setCar(ICar car);
    public void driver();
}

public class Driver implements IDriver{
  private ICar car;
public void setCar(ICar car){
    this.car=car;
}
public void driver(){
 this.car.run();
}
 

}

3、接口声明实现依赖对象,也叫接口注入;

即在函数声明中参数为抽象类或接口,来实现传递依赖对象,从而达到直接使用依赖对象的目的。

注:项目越大使用该原则好处越大

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 工厂方法模式

    简单定义### 定义一个用于创建对象的接口,让子类决定实例化哪一个类,工厂方法使一个类的实例化延迟到其子类。 工厂方法(Factory Method)模式的意义...

    张俊怡
  • 里式替换原则(LSP)

    讲继承 所有引用父类的地方都必须可以透明的使用其子类对象 几个原则: 1、子类必须完全实现父类的方法 2、子类可以有自己的个性 3、覆盖或实现父类的方...

    张俊怡
  • 计算A+B

    代码很冗余 时间限制:1秒空间限制:32768K热度指数:347 **算法知识视频讲解 题目描述 给定两个整数A和B,其表示形式是:从个位开始,每三位数用...

    张俊怡
  • 装饰者模式

    在不改变原代码结构的情况下,动态地扩展一个对象的功能,相比继承有更灵活的实现方式。见名知意,其就是在需要增强功能的对象上包装一层代码,达到增强功能的效果

    晚上没宵夜
  • 代理

    代理就像个中介,最外层操作代理对象,代理对象再调用委托对象 当需要在调用前后做一些处理,但是这些处理与业务逻辑无关的时候,如果把无关代码写在业务逻辑里面,代码就...

    用户1174983
  • 设计模式|01 策略模式

    博主博客地址:https://www.jeffcc.top/ 设计模式系列是我通过看Head First 的《设计模式》中学到的知识总结,这是本不错的设计模式入...

    微笑的小小刀
  • 23种设计模式详解(四)

    顾名思义,装饰模式就是给一个对象增加一些新的功能,而且是动态的,要求装饰对象和被装饰对象实现同一个接口,装饰对象持有被装饰对象的实例。

    南风
  • 23种设计模式详解(四)

    南风
  • 常用设计模式——桥接模式

    在正式介绍桥接模式之前,我先跟大家谈谈两种常见文具的区别,它们是毛笔和蜡笔。假如我们需要大中小3种型号的画笔,能够绘制12种不同的颜色,如果使用蜡笔,需要准备3...

    用户5325874
  • Java之Lambda表达式与方法引用实战

    从JDK1.8开始为了简化使用者进行代码开发,专门提供有Lambda表达式的支持,利用此操作形式可以实现函数式的编程,对于函数式编程比较著名的语言...

    用户5224393

扫码关注云+社区

领取腾讯云代金券