前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >倒置依赖原则(DIP)

倒置依赖原则(DIP)

作者头像
张俊怡
发布2018-04-24 13:43:04
6650
发布2018-04-24 13:43:04
举报
文章被收录于专栏:深度学习计算机视觉

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

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

代码语言:javascript
复制
public class Notification
{
    private IMessageService _iMessageService;

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

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

代码语言:javascript
复制
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、接口声明实现依赖对象,也叫接口注入;

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

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

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

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

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

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

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