1. 程式人生 > >【機房重構個人版】上下機與職責鏈

【機房重構個人版】上下機與職責鏈

       剛開始做上下機的時候,感覺上機還可以,下機好麻煩,涉及到各種計算~~~都說萬事開頭難,那就硬著頭皮幹吧。

首先應該縷縷上下機的思路。如下圖所示:


      個人感覺下機的難點有兩個:一是職責鏈模式的使用,二是計算消費金額的演算法。當初學設計模式的時候,職責鏈草草收場,簡直就是在我的心頭略過,卻沒有留下任何痕跡,嘻嘻。欠下的總是要還的,現在就回頭重新認識一下職責鏈模式。那麼究竟什麼是職責鏈模式呢?

官方定義:

       使多個物件都有機會處理請求,從而避免請求的傳送者和接受者之間的耦合關係。將這個物件連成一條鏈,並沿著這條鏈傳遞該請求,直到有一個物件處理它為止。

自己理解:

       狗負責看門,貓負責捉耗子,如果狗越權去捉耗子,就成了多管閒事啦。人類世界也是如此,每個人的職責許可權是不同的,我們不能越過自己的許可權,如果請假這件事情:當我們請兩個小時的假時,只需向紀委申請,紀委就有權利批給我們,可是當我們需要請兩天假時,此時紀委則沒有許可權,這時需要向米老師申請啦。

職責鏈模式的優點:

       當客戶提交一個請求時嗎,請求是沿著鏈傳遞,直到有一個物件負責處理它。這樣請求者是不用管那個物件來處理自己的請求,反正該請求總會被處理。這使得接受者和傳送者都沒有物件的明確資訊,且鏈中的物件自己也並不知道鏈的結構。結果是職責鏈可簡化物件的相互連線,他們僅需保持一個指向其後繼者的引用,而不需保持它所有的候選接受者的引用。因此能大大降低耦合。

UML圖展示: