我正在處理一個並行繼承層次結構,我對一步一步重構有一個想法,並希望看到它是否可行,或者是否有更好的方法來實現它。並行繼承層次結構重構
創建實現所需的如
CarHandler
兒童vwHandler
,fordHandler
具體行爲的孩子Handler類,bmwHandler
添加調用所有組件和重組它讓孩子返回的對象neccessary 。例如呼叫
vwHandler.getDrive
將返回vwDrive.drive
結果,稱vwHandler.getSeat
回報vwSeat.seat
)重構的其他類,讓他們提供一般的功能,而不是具體的如呼叫
的vwHandler.getDrive
將返回處理器drive(vwSpec1, vwSpec2)
例
public abstract class CarHandler
{
private Car car;
public Car getCar()
{
return car;
}
public Car setCar()
{
car = car;
}
public CarHandler(Car car)
{
this.car = car;
}
public Car getCar()
{
return car;
}
public void setCar(Car car)
{
this.car = car;
}
public void updateCar()
{
Globalizer.updateOnServer(car);
}
public abstract Drive getNewDrive();
public abstract Seat getNewSeat();
}
您能否給我們提供一個例子? – Grooveek
@Grooveek添加了處理程序的例子 – FooBar
甚至在此之前,不同類型的處理程序有不同的行爲嗎?你確定你不能將它降低到一個標誌(一個具有品牌價值的枚舉的成員)嗎? – Viruzzo