我正在使用狀態模式,我需要知道給定物件在哪個狀態下列印它。我考慮過使用抽象方法回傳一個字串,每個狀態都會用自己的名稱覆寫,這是一個可以接受的解決方案嗎?
public abstract class State{
public abstract String getState();
}
class StateOne extends State{
@Override
public String getState(){ return "StateOne"; }
}
// And so on for each state...
uj5u.com熱心網友回復:
看起來你有“是”關系,所以可以將抽象方法getState()放在抽象類中:
public abstract class State{
public abstract String getState();
}
抽象類應該包含所有派生類的行為。getState()方法計劃在所有派生類中使用。此外,getState()方法與類具有很高的內聚性State。所以這是一個使用繼承的情況。
閱讀更多何時更喜歡繼承或組合。
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/471687.html
