依賴傳遞的三種方式

點(diǎn)擊上方「藍(lán)字」關(guān)注我們

依賴是可以傳遞的,A對(duì)象依賴B對(duì)象,B對(duì)象又依賴C對(duì)象,C對(duì)象又依賴D對(duì)象......生生不息,依賴不止,要記住一點(diǎn):只要做到抽象依賴,即使多層的依賴傳遞也無所畏懼。對(duì)象的依賴關(guān)系主要有三種方式來傳遞。
1、構(gòu)造函數(shù)傳遞依賴對(duì)象
在類中通過構(gòu)造函數(shù)依賴對(duì)象,安裝依賴注入的說法,這種方式叫做構(gòu)造函數(shù)注入。
public?interface?ICar?{
????//是汽車就應(yīng)該能跑
????public?void?run();
}
public?interface?IDriver?{
????//是司機(jī)就應(yīng)該會(huì)駕駛汽車
????public?void?drive();
}
public?class?Driver?implements?IDriver{
????private?ICar?car;
????//構(gòu)造函數(shù)注入
????public?Driver(ICar?car)?{
????????this.car?=?car;
????}
????//司機(jī)的主要職責(zé)就是駕駛汽車
????@Override
????public?void?drive()?{
????????car.run();
????}
}
2、Setter方法傳遞依賴注入
在抽象中設(shè)置Setter方法聲明依賴關(guān)系,依照依賴注入的說法,這個(gè)Setter依賴注入。
public?interface?ICar?{
????//是汽車就應(yīng)該能跑
????public?void?run();
}
public?interface?IDriver?{
????//車輛的型號(hào)
????public?void?setCar(ICar?car);
????//是司機(jī)就應(yīng)該會(huì)駕駛汽車
????public?void?drive();
}
public?class?Driver?implements?IDriver{
????private?ICar?car;
????@Override
????public?void?setCar(ICar?car)?{
????????this.car?=?car;
????}
????//司機(jī)的主要職責(zé)就是駕駛汽車
????@Override
????public?void?drive()?{
????????car.run();
????}
}
3、接口聲明依賴對(duì)象
在接口的方法中聲明依賴對(duì)象,該方法也叫做接口注入。
public?interface?ICar?{
????//是汽車就應(yīng)該能跑
????public?void?run();
}
public?interface?IDriver?{
????//是司機(jī)就應(yīng)該會(huì)駕駛汽車
????public?void?drive(ICar?car);
}
public?class?Driver?implements?IDriver{
????//司機(jī)的主要職責(zé)就是駕駛汽車
????@Override
????public?void?drive(ICar?car)?{
????????car.run();
????}
}

掃碼二維碼
獲取更多精彩
Java樂園

評(píng)論
圖片
表情
