相信大家都玩過(guò)類似于“斗地主”的紙牌游戲,某人出牌給他的下家,下家看看手中的牌,如果要不起,則將出牌請(qǐng)求轉(zhuǎn)發(fā)給他的下家,其下家再進(jìn)行判斷。一個(gè)循環(huán)下來(lái),如果其他人都要不起該牌,則最初的出牌者可以打出新牌。在這個(gè)過(guò)程中,紙牌作為一個(gè)請(qǐng)求沿著一條鏈在傳遞,每一位紙牌的玩家都可以處理該請(qǐng)求。在設(shè)計(jì)模式中,也有一種專門用于處理這種請(qǐng)求鏈?zhǔn)降哪J?,它就是職?zé)鏈模式。

職責(zé)鏈模式(Chain of Responsibility)學(xué)習(xí)難度:★★★☆☆使用頻率:★★☆☆☆

一、采購(gòu)單的分級(jí)審批模塊設(shè)計(jì)

需求背景:M公司承接了某企業(yè)SCM(Supply Chain Management,供應(yīng)鏈管理)系統(tǒng)的開發(fā)任務(wù),其中包含一個(gè)采購(gòu)審批子系統(tǒng)。該企業(yè)的采購(gòu)審批是分級(jí)進(jìn)行的,即根據(jù)采購(gòu)金額的不同由不同層次的主管人員來(lái)審批:主任可以審批5萬(wàn)元以下(不包括5萬(wàn))的采購(gòu)單,副董事長(zhǎng)可以審批5萬(wàn)~10萬(wàn)(不包括10萬(wàn))的采購(gòu)單,50萬(wàn)元以及以上的采購(gòu)單就需要開董事會(huì)討論決定,如下圖所示:

大學(xué)生就業(yè)培訓(xùn),高中生培訓(xùn),在職人員轉(zhuǎn)行培訓(xùn),企業(yè)團(tuán)訓(xùn)

  M公司開發(fā)人員提出了一個(gè)初始解決方案,提供了一個(gè)采購(gòu)單處理類PurchaseRequestHandler用于統(tǒng)一處理采購(gòu)單,其框架代碼如下:

網(wǎng)友評(píng)論