如何Python設(shè)計(jì)一個(gè)請(qǐng)假模式

本篇文章為大家展示了如何Python設(shè)計(jì)一個(gè)請(qǐng)假模式,內(nèi)容簡(jiǎn)明扼要并且容易理解,絕對(duì)能使你眼前一亮,通過(guò)這篇文章的詳細(xì)介紹希望你能有所收獲。

十余年的志丹網(wǎng)站建設(shè)經(jīng)驗(yàn),針對(duì)設(shè)計(jì)、前端、開(kāi)發(fā)、售后、文案、推廣等六對(duì)一服務(wù),響應(yīng)快,48小時(shí)及時(shí)工作處理。營(yíng)銷型網(wǎng)站的優(yōu)勢(shì)是能夠根據(jù)用戶設(shè)備顯示端的尺寸不同,自動(dòng)調(diào)整志丹建站的顯示方式,使網(wǎng)站能夠適用不同顯示終端,在瀏覽器中調(diào)整網(wǎng)站的寬度,無(wú)論在任何一種瀏覽器上瀏覽網(wǎng)站,都能展現(xiàn)優(yōu)雅布局與設(shè)計(jì),從而大程度地提升瀏覽體驗(yàn)。創(chuàng)新互聯(lián)從事“志丹網(wǎng)站設(shè)計(jì)”,“志丹網(wǎng)站推廣”以來(lái),每個(gè)客戶項(xiàng)目都認(rèn)真落實(shí)執(zhí)行。

由于你沒(méi)有用一些設(shè)計(jì)模式去優(yōu)化你的代碼,所以導(dǎo)致很多小伙伴只能把自己的代碼重寫。這次我們通過(guò)請(qǐng)假條來(lái)講講設(shè)計(jì)模式-"職責(zé)模式"

一、什么是職責(zé)模式

比如我們要請(qǐng)假,我們一般都是寫個(gè)請(qǐng)假條,然后提交給系統(tǒng)!系統(tǒng)會(huì)自動(dòng)根據(jù)你的請(qǐng)假的情況,找對(duì)應(yīng)的主管去審批。請(qǐng)假條處理的流程是一環(huán)接一環(huán)的,就像一個(gè)鏈條一樣,所有處理請(qǐng)假條的人構(gòu)成了一個(gè)職責(zé)鏈條。

如何Python設(shè)計(jì)一個(gè)請(qǐng)假模式

職責(zé)模式:

  • 職責(zé)模式的精妙之處在于把請(qǐng)求者和接受者解耦了,就是做了分層處理!請(qǐng)求者不知道是誰(shuí)處理請(qǐng)假條,不需要知道具體的業(yè)務(wù)邏輯和處理請(qǐng)假條的鏈上有多少人,它只管提交,這樣的話系統(tǒng)的靈活性和擴(kuò)展性就非常好,不信我們看實(shí)戰(zhàn)案例。

二、實(shí)戰(zhàn)案例

老板讓程序員小李去設(shè)計(jì)一個(gè)請(qǐng)假系統(tǒng),應(yīng)該怎么設(shè)計(jì)呢,小李想了想就用上面的職責(zé)模式吧,二話不說(shuō)先畫一個(gè)UML圖,把業(yè)務(wù)邏輯關(guān)系設(shè)計(jì)出來(lái)。

如何Python設(shè)計(jì)一個(gè)請(qǐng)假模式

1).設(shè)計(jì)請(qǐng)假人類

我們把請(qǐng)假人抽象為一個(gè)對(duì)象,里面屬性肯定是要有名字,請(qǐng)多少天,請(qǐng)假理由等等.所以Person接口的時(shí)候我們留了三個(gè)參數(shù)(name,dayoff,reason)。

如何Python設(shè)計(jì)一個(gè)請(qǐng)假模式

這個(gè)類里面最關(guān)鍵的是setLeader()和request()函數(shù):

  • setLeader的目的設(shè)置請(qǐng)假的提交給主管,但是具體是哪一級(jí)別的主管你不用管。

  • request的目的是把請(qǐng)假條扔出去,至于這個(gè)請(qǐng)假條哪一個(gè)級(jí)別的主管來(lái)批你也不用管,因?yàn)橛胔andleRequest()這個(gè)函數(shù)來(lái)處理。

2).設(shè)計(jì)主管類

主管的角色有很多種,比如小組長(zhǎng),部門經(jīng)理,部門總監(jiān),公司老總,HR, 行政總監(jiān)等等。我們把這些人都抽象提取為一個(gè)基類叫主管類。

如何Python設(shè)計(jì)一個(gè)請(qǐng)假模式

這個(gè)Manager類是基類,主要是處理get和set  NextHandler.就是請(qǐng)假條在一個(gè)鏈條上,需要有一個(gè)一層一層提交的關(guān)系,比如組長(zhǎng)的下一層nextHandler是部門經(jīng)理,部門經(jīng)理的下一層處理是公司老板。

3).具體的幾個(gè)角色類

比如我們?cè)O(shè)計(jì)這個(gè)請(qǐng)假系統(tǒng)里面有TeamLeader,DeptMaanger,Director等等。

每個(gè)的權(quán)利不一樣,比如:

  • 請(qǐng)假2天內(nèi)的又TeamLeader審批

  • 請(qǐng)假2-10天有部門經(jīng)理申請(qǐng)

  • 請(qǐng)假10-22天的有研發(fā)總監(jiān)申請(qǐng)

我們舉一個(gè)例子,比如小組長(zhǎng)這個(gè)類。它主要是重寫了handlerRequest這個(gè)類。(大家注意看Pycharm左邊有一個(gè)藍(lán)色的小圓圈,表示重寫了父類的函數(shù))

如何Python設(shè)計(jì)一個(gè)請(qǐng)假模式

DeptMaanger也是類似的,主要在與審批的天數(shù)不一樣。

如何Python設(shè)計(jì)一個(gè)請(qǐng)假模式

HR的類主要是處理登記備案:

如何Python設(shè)計(jì)一個(gè)請(qǐng)假模式

三、測(cè)試一下模型

經(jīng)過(guò)了上面的類的重重設(shè)計(jì),我們的模型應(yīng)該可以運(yùn)行了。我們用幾個(gè)請(qǐng)假條來(lái)測(cè)一下看看:

如何Python設(shè)計(jì)一個(gè)請(qǐng)假模式

>>

Leo 申請(qǐng)請(qǐng)假2天,請(qǐng)假理由:參加谷歌大會(huì)

同意Leo,請(qǐng)假。簽字人:Eric,(小組長(zhǎng))

請(qǐng)假申請(qǐng)已經(jīng)審核,情況屬實(shí)!已備案處理.處理人Tina:行政總監(jiān)

--------------------------------------------------

Susan 申請(qǐng)請(qǐng)假10天,請(qǐng)假理由:去歐洲旅游,還要去日本泡溫泉

同意Susan,請(qǐng)假。簽字人:Leo,(研發(fā)經(jīng)理)

請(qǐng)假申請(qǐng)已經(jīng)審核,情況屬實(shí)!已備案處理.處理人Tina:行政總監(jiān)

--------------------------------------------------

Lili 申請(qǐng)請(qǐng)假22天,請(qǐng)假理由:生病休息

同意Lili,請(qǐng)假。簽字人:老王,(公司老板)

請(qǐng)假申請(qǐng)已經(jīng)審核,情況屬實(shí)!已備案處理.處理人Tina:行政總監(jiān)

上述內(nèi)容就是如何Python設(shè)計(jì)一個(gè)請(qǐng)假模式,你們學(xué)到知識(shí)或技能了嗎?如果還想學(xué)到更多技能或者豐富自己的知識(shí)儲(chǔ)備,歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道。

網(wǎng)站欄目:如何Python設(shè)計(jì)一個(gè)請(qǐng)假模式
文章URL:http://muchs.cn/article6/pihsog.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供品牌網(wǎng)站設(shè)計(jì)、定制開(kāi)發(fā)、網(wǎng)站制作、面包屑導(dǎo)航、用戶體驗(yàn)響應(yīng)式網(wǎng)站

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)

搜索引擎優(yōu)化