1700455273
1700455274
依赖是可以传递的,A对象依赖B对象,B又依赖C,C又依赖D……生生不息,依赖不止,记住一点:只要做到抽象依赖,即使是多层的依赖传递也无所畏惧!
1700455275
1700455276
对象的依赖关系有三种方式来传递,如下所示。
1700455277
1700455278
1.构造函数传递依赖对象
1700455279
1700455280
在类中通过构造函数声明依赖对象,按照依赖注入的说法,这种方式叫做构造函数注入,按照这种方式的注入,IDriver和Driver的程序修改后如代码清单3-11所示。
1700455281
1700455282
代码清单3-11 构造函数传递依赖对象
1700455283
1700455284
public interface IDriver{
1700455285
1700455286
//是司机就应该会驾驶汽车
1700455287
1700455288
public void drive();
1700455289
1700455290
}
1700455291
1700455292
public class Driver implements IDriver{
1700455293
1700455294
private ICar car;
1700455295
1700455296
//构造函数注入
1700455297
1700455298
public Driver(ICar_car){
1700455299
1700455300
this.car=_car;
1700455301
1700455302
}
1700455303
1700455304
//司机的主要职责就是驾驶汽车
1700455305
1700455306
public void drive(){
1700455307
1700455308
this.car.run();
1700455309
1700455310
}
1700455311
1700455312
}
1700455313
1700455314
2.Setter方法传递依赖对象
1700455315
1700455316
在抽象中设置Setter方法声明依赖关系,依照依赖注入的说法,这是Setter依赖注入,按照这种方式的注入,IDriver和Driver的程序修改后如代码清单3-12所示。
1700455317
1700455318
代码清单3-12 Setter依赖注入
1700455319
1700455320
public interface IDriver{
1700455321
1700455322
//车辆型号
[
上一页 ]
[ :1.700455273e+09 ]
[
下一页 ]