下面簡單的說明了這種依賴注入的情況
其實我們並不一定需要一個輕量級容器來使用依賴注入的模式
下面我們來看如何改寫第一節裡的范例代碼
Example
import java
public class ArrayListRentABike implements RentABike
{
private String storeName;
final List bikes = new ArrayList( );
public ArrayListRentABike( ) { initBikes( ); }
public ArrayListRentABike(String storeName)
{
this
initBikes( );
}
public void initBikes( )
{
bikes
bikes
bikes
}
public String toString( ) { return
public List getBikes( ) { return bikes; }
public Bike getBike(String serialNo) { Iterator iter = bikes
while(iter
{
Bike bike = (Bike)iter
if(serialNo
}
return null;
}
}
Example
import java
大家看到了
再來看看客戶端的代碼
Example
import java
public class CommandLineView
{
private RentABike rentaBike;//接口的引用
public CommandLineView( ) { } //set接口
public void setRentaBike(RentABike rentaBike) { this
public RentABike getRentaBike( ) { return this
public void printAllBikes( )
{
System
Iterator iter = rentaBike
while(iter
{
Bike bike = (Bike)iter
System
}
}
}
大家應該注意到了吧
最後
Example
public class RentABikeAssembler
{
public static final void main(String[] args)
{
//創建一個客戶端對象
CommandLineView clv = new CommandLineView( );
//裝配器給出了接口的具體實現
RentABike rentaBike = new ArrayListRentABike(
//設置客戶端對象的屬性
clv
//調用客戶端對象的內部方法
clv
}
}
實際上
我們運行程序
C:\RentABikeApp\out>java RentABikeAssembler
RentABike: Bruce
Bike : manufacturer
: model
: frame
: serialNo
: weight
: status
Bike : manufacturer
: model
: frame
: serialNo
: weight
: status
Bike : manufacturer
: model
: frame
: serialNo
: weight
: status
大家現在看到了一個不用特定容器而實現的簡單的依賴注入
下面是J
service location這種設計模式把依賴從應用程序中完全脫離了出來
From:http://tw.wingwit.com/Article/program/Java/ky/201311/29021.html