我有一個代表註冊過程中的一個步驟的類。當用戶在填寫完步驟後單擊保存,然後執行我希望在註冊過程結束時執行步驟時執行的其他操作以及在步驟中調用保存時,我希望某些步驟可以執行。那個階段。我決定使用擁有一個國家的想法,但它似乎有一個糟糕的代碼味道。有關如何改進此設計的任何意見?OO設計問題
public class Step1
{
public Enum State
{
InProcess = 1,
EndProcess
}
private State processState;
public Step1(State currentState)
{
processState = currentState;
}
public bool IsValid()
{
bool result;
if(processState = State.InProcess)
{
result = PerformCheck1();
}
else if(processState = State.EndProcess)
{
result = PerformCheck2();
result = PerformCheck3();
}
else
{
throw new Exception("Cannot determine process state");
}
return result;
}
public void Save()
{
if(processState = State.InProcess)
{
DoThing1();
}
else if(processState = State.EndProcess)
{
DoThing2();
DoThing3();
DoThing4();
}
else
{
throw new Exception("Cannot determine process state");
}
}
}
屬於codereview。 – 2012-02-25 14:36:26