我有一個枚舉怎樣才能避免這種if語句
public enum Vehicle {
CAR("CAR", "Car"), PUSHBIKE("PUSHBIKE", "PuschBike");
public boolean isCar()
{
...
}
public boolean isPushBike()
{
....
}
}
我有一個2 DAO CarDAO
和PushBikeDAO
這是正在實施BaseDao
我有一個JSF託管bean的財產以後這樣
public class JsfManagedBean {
private Vehicle vehicle;
private BaseDAO baseDao;
public void Search()
{
//I need to get rid of this if statement
if (vehicle.isCar())
{
baseDao = new CarDao;
baseDao.search();
}
else if(vehicle.isPushBike())
{
baseDao = new PushBike;
baseDao.search();
}
//Please Note each type of search is very different call to an other party's Jar
}
}
我想擺脫這一點,如果聲明可能通過使用泛型或任何適當的OO技術 可能是像
baseDao = new baseDaoImpl<getClass(vehicle.getcode())>
如果vehicle.getcode()
返回字符串值汽車我有一個模型類汽車。
只是大聲思考(牢牢抓住吸管:))。
這是mine
當你看到它來臨時穿過街道:-) – bmargulies
這不能用依賴注入來完成嗎? – ysdx