學用狀態機模式,寫的報銷流程,請指教

2022-02-26 17:43:07 字數 1374 閱讀 8615

剛學程式設計不久,請前輩們指點。

需求變化點:不同的金額,和不同的角色走不同的報銷流程

using

system;

static

class

factory

if(employee 

==null

) throw

newexception(

"傳入的名字非法!");

return

employee;}}

abstract

class

employee

public

state state 

public

void

sign()

}class

sales : employee

}class

projectmanager : employee

}abstract

class

state

public

virtual

void

finishstate(employee employee, 

string

sign)

}class

projectmanagerstate : state

元,專案經理簽字報銷

", employee.money);

finishstate(employee, sign);

}else

元,專案經理簽字後,給部門經理

", employee.money);

changestate(employee, sign, 

newdepartmentmanagerstate());}}

}class

departmentmanagerstate : state

元,部門經理簽字報銷

", employee.money);

finishstate(employee, sign);

}else

元,部門經理簽字後,給總經理

", employee.money);

changestate(employee, sign, 

newgeneralmanagerstate());}}

}class

generalmanagerstate : state

元,總經理簽字報銷

", employee.money);

finishstate(employee, sign);}}

class

finishedstate : state元"

, employee.money);}}

class

test

}

簡單地用狀態機寫的按鍵檢測

在csdn上寫的第一篇文章,之前就聽說過狀態機,但並沒有感覺到其比普通按鍵的優越之處。接觸了實時作業系統之後,才領悟到這種按鍵檢測方法可以很好地利用cpu的資源 或者說不用實時作業系統時更體現優越性 這裡直接貼上按鍵檢測的 了 按鍵 led初始化 ucos系統就不贅述了 程式是stm32f103的,...

Python 狀態機模式的實現

原因 解決 冗餘處理效率低的問題 原有模式 class connection 普通方案,好多個判斷語句,效率低下 def init self self.state closed defread self if self.state open raise runtimeerror not open p...

設計模式之狀態模式 狀態機的實現原理

狀態模式是根據狀態的改變觸發一些動作或者行為。當乙個物件的內在狀態改變時可以改變其行為,這個物件看起來像是改變了其類。狀態模式主要有三部分狀態 事件 動作。通過一些事件會觸發狀態的改變,狀態的改變有時候也會出發一些動作。狀態模式主要解決的是當控制乙個物件狀態轉換的條件表示式過於複雜時的情況。把狀態的...