倒置依赖原则(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、接口声明实现依赖对象,也叫接口注入;
即在函数声明中参数为抽象类或接口,来实现传递依赖对象,从而达到直接使用依赖对象的目的。
注:项目越大使用该原则好处越大
优质内容筛选与推荐>>