使用状态模式了解对象的状态
Knowing the state of an object using the state pattern
我正在使用状态模式,我需要知道给定对象在哪个状态下打印它。我想过使用一个抽象方法返回一个字符串,每个状态都会用自己的名称覆盖它,这是一个可以接受的解决方案吗?
public abstract class State{
public abstract String getState();
}
class StateOne extends State{
@Override
public String getState(){ return "StateOne"; }
}
// And so on for each state...
看来你是”是一个的关系,所以把抽象方法getState()
放在抽象class中是可以的:
public abstract class State{
public abstract String getState();
}
摘要 class 应该包含所有派生的 classes 的行为。 getState()
方法计划用于所有派生的 classes。另外,getState()
方法与State
class有很高的内聚性。所以这是使用继承的情况。
Read more when to prefer inheritance or composition.
我正在使用状态模式,我需要知道给定对象在哪个状态下打印它。我想过使用一个抽象方法返回一个字符串,每个状态都会用自己的名称覆盖它,这是一个可以接受的解决方案吗?
public abstract class State{
public abstract String getState();
}
class StateOne extends State{
@Override
public String getState(){ return "StateOne"; }
}
// And so on for each state...
看来你是”是一个的关系,所以把抽象方法getState()
放在抽象class中是可以的:
public abstract class State{
public abstract String getState();
}
摘要 class 应该包含所有派生的 classes 的行为。 getState()
方法计划用于所有派生的 classes。另外,getState()
方法与State
class有很高的内聚性。所以这是使用继承的情况。
Read more when to prefer inheritance or composition.