狀態模式例項請假流程

2021-10-05 20:23:47 字數 1139 閱讀 8887

工作流中的請假流程

某人提出請假申請,先由專案經理審批,如果專案經理不同意,審批就直接結束

如專案經理同意,再看是否超過3天,如果三天以內,審批直接結束

否則,交給部門經理,部門經理審核後,無論是否同意,審批直接結束

狀態類

package 狀態模式;

public abstract class

state

專案經理類,繼承了狀態類,並實現了狀態由專案經理審批轉移至部門經理審批:

package 狀態模式;

public

class

projectmanager extends state

else

else}}

}

部門經理類:

package 狀態模式;

public

class

partmentmeneger extends state

}

工作類,擁有乙個state的物件,在shenpi方法中將自己回傳給state:

package 狀態模式;

public

class

work

public state getcurrent()

public

void

setcurrent

(state current)

public

intgetday()

public

void

setday

(int day)

public boolean ismanagermentaccept()

public

void

setmanagermentaccept

(boolean ismanagermentaccept)

public

void

shenpi()

}

客戶端測試一下:

package 狀態模式;

public

class

test

}

設計模式 狀態模式公司請假

工作流中的請假流程 某人提出請假申請,先由專案經理審批,如果專案經理不同意,審批就直接結束 如專案經理同意,再看是否超過3天,如果三天以內,審批直接結束 否則,交給部門經理,部門經理審核後,無論是否同意,審批直接結束。狀態模式特點 1.根據狀態來分離和選擇行為。2.狀態模式是狀態驅動,由上下文負責。...

OA請假流程 編碼

凡是內容不會發生變化的,都要寫在xml配置檔案中。需要定義如下內容 標籤id英文命名和 name中文命名,然後只要與該流程相關的資源均以id 為字首。標籤該標籤內的activiti initiator屬性一律按照下面內容補充 activiti initiator initiator 因為系統會自動從...

OA請假流程 編碼

凡是內容不會發生變化的,都要寫在xml配置檔案中。需要定義如下內容 標籤id英文命名和 name中文命名,然後只要與該流程相關的資源均以id 為字首。標籤該標籤內的activiti initiator屬性一律按照下面內容補充 activiti initiator initiator 因為系統會自動從...