成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專欄INFORMATION COLUMN

編程中的那些套路——關(guān)于責(zé)任鏈模式

lylwyy2016 / 2984人閱讀

該文章屬于《編程中的那些經(jīng)典套路——設(shè)計(jì)模式匯總》系列,并且以下內(nèi)容基于語言PHP

今天來談?wù)勜?zé)任鏈模式,乍一聽責(zé)任鏈模式好像很高級的一樣,但是相信我,其實(shí)每位天朝的同學(xué)都十分熟悉這個(gè)模式,責(zé)任鏈模式,就好像中國的官場制度一樣,每一個(gè)級別的權(quán)利都區(qū)分的很細(xì),舉個(gè)生活中的栗子:

村委不能越級去替鎮(zhèn)委辦事情,如果村委無法解決,只能向上求助鎮(zhèn)委

鎮(zhèn)委不能越級去替市委辦事情,如果鎮(zhèn)委無法解決,只能向上求助市委

市委不能越級去替省委辦事情,如果市委無法解決,只能向上求助省委

副領(lǐng)導(dǎo)不能越級去替正領(lǐng)導(dǎo)辦事情,如果副領(lǐng)導(dǎo)無法解決,只能向上求助正領(lǐng)導(dǎo)

….

直到找到合適的~ 鎮(zhèn)委(未解決)-> 市委(未解決)->省委(解決)->中央(老大不需要出馬,因?yàn)榍懊嬉呀?jīng)由小弟解決了~)

對的,就是這樣,每個(gè)級別有自己職責(zé),如果自己沒有權(quán)限解決這個(gè)問題,只能一層一層往上找,直到有一個(gè)合適的人出現(xiàn)然后解決問題。

編程中的使用場景:

在一個(gè)論壇中,如果一個(gè)人的帖子被人舉報(bào)了,那么這個(gè)帖子就會進(jìn)入管理員的刪帖界面,那么進(jìn)入哪個(gè)管理員的刪帖界面呢?這個(gè)時(shí)候就用到責(zé)任鏈模式了,把這個(gè)帖子給權(quán)限最低的管理員,如果這個(gè)管理員無法處理,那么就一層一層往上找,直到找到一個(gè)人有權(quán)利刪帖了,該流程才算結(jié)束。

接下來請看具體代碼:

觀察者模式.php

higher;
 
            $higher->operation($lev);
 
        }
 
    }
 
}
 
//二級官
 
class Lev2 extends duty{
 
    protected $higher = "lev3";
 
    public function operation($lev){
 
        if ($lev <= 2) {
 
            echo"鎮(zhèn)委解決";
 
        }else{
 
            $higher = new $this->higher;
 
            $higher->operation($lev);
 
        }
 
    }
 
}
 
class Lev3{
 
    protected $higher = "lev4";
 
    public function operation($lev){
 
        if ($lev <= 3) {
 
            echo"市委解決";
 
        }else{
 
            $higher = new $this->higher;
 
            $higher->operation($lev);
 
        }
 
        }
 
}
 
class Lev4{
 
    protected $higher = null; //沒有比中央更大的了,所以可以不用判斷直接解決
 
    public function operation($lev){
 
            echo "中央解決";
 
        }
 
}
 
$question = new Lev1();//從最低級的開始嘗試
 
$question->operation(3);//事件等級為3,所以到市委才能解決
 
//output :"市委解決";
 
?>

其實(shí)很簡單,就是在當(dāng)前類中定義好自己的上級名字,遇到自己解決不了的問題,就直接實(shí)例化調(diào)用上級,讓它來處理。圖示:

該文章屬于《編程中的那些經(jīng)典套路——設(shè)計(jì)模式匯總》系列

文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請注明本文地址:http://systransis.cn/yun/21668.html

相關(guān)文章

  • 編程中的那些經(jīng)典套路——設(shè)計(jì)模式匯總

    摘要:如果看不懂的話,可以在評論區(qū)中提問,我會第一時(shí)間回答你無論何時(shí)我一直都在嗯哼該文章屬于編程中的那些經(jīng)典套路設(shè)計(jì)模式匯總系列 在正式閱讀前,我先談?wù)勎覀冊撚檬裁醋藙莺托膽B(tài)學(xué)習(xí)設(shè)計(jì)模式: 如果你還沒有過多的編程經(jīng)驗(yàn)(泛指半年以下),我建議你把它當(dāng)做小說來看,能看懂多少是多少,因?yàn)榘肽暌韵陆?jīng)驗(yàn)的程序員用到設(shè)計(jì)模式的情況只會出現(xiàn)在面試上,至于實(shí)際工作中?相對來說這部分不會由你負(fù)責(zé)。 如果你已...

    youkede 評論0 收藏0
  • 函數(shù)式編程讓你忘記設(shè)計(jì)模式

    摘要:面向?qū)ο蟪R姷脑O(shè)計(jì)模式有策略模式模板方法觀察者模式責(zé)任鏈模式以及工廠模式,使用表達(dá)式函數(shù)式編程思維有助于避免面向?qū)ο箝_發(fā)中的那些固定代碼。 本文是一篇《Java 8實(shí)戰(zhàn)》的閱讀筆記,閱讀大約需要5分鐘。 有點(diǎn)標(biāo)題黨,但是這確實(shí)是我最近使用Lambda表達(dá)式的感受。設(shè)計(jì)模式是過去的一些好的經(jīng)驗(yàn)和套路的總結(jié),但是好的語言特性可以讓開發(fā)者不去考慮這些設(shè)計(jì)模式。面向?qū)ο蟪R姷脑O(shè)計(jì)模式有策略模式...

    or0fun 評論0 收藏0
  • 編程中的那些套路——關(guān)于工廠模式

    摘要:該文章屬于編程中的那些經(jīng)典套路設(shè)計(jì)模式匯總系列,并且以下內(nèi)容基于語言前面我們寫了簡單工廠模式,編程中的那些套路關(guān)于簡單工廠模式,但簡單工廠模式有一些不足違反開放封閉原則,所以需要設(shè)計(jì)出一套更加規(guī)范的設(shè)計(jì)模式。 該文章屬于《編程中的那些經(jīng)典套路——設(shè)計(jì)模式匯總》系列,并且以下內(nèi)容基于語言PHP 前面我們寫了簡單工廠模式,《編程中的那些套路——關(guān)于簡單工廠模式》,但簡單工廠模式有一些不足(...

    light 評論0 收藏0
  • 編程中的那些套路——關(guān)于簡單工廠模式

    摘要:簡單工廠模式就是遵循了這一原則,它讓不同職責(zé)的類各司其職。重點(diǎn)來了,簡單工廠模式的不足但是簡單工廠模式有一個(gè)不足,雖然它遵循了單一職責(zé)原則,但它違反了另一條同樣很重要的原則開放封閉原則。 該文章屬于《編程中的那些經(jīng)典套路——設(shè)計(jì)模式匯總》系列,并且以下內(nèi)容基于語言PHP 面向?qū)ο笪宕笤瓌t中有一點(diǎn)非常重要的原則:單一職責(zé)原則。 簡單工廠模式就是遵循了這一原則,它讓不同職責(zé)的類各司其職。 ...

    Rocture 評論0 收藏0
  • 編程中的那些套路——關(guān)于單例模式

    該文章屬于《編程中的那些經(jīng)典套路——設(shè)計(jì)模式匯總》系列,并且以下內(nèi)容基于語言PHP 在設(shè)計(jì)模式中,單例模式和工廠模式)可以說是使用的最普遍的設(shè)計(jì)模式了,所以掌握此種模式尤為重要。 單例模式一般使用在資源共享和需要控制資源的情況下。 例如:購物車,回收站,數(shù)據(jù)庫連接池,計(jì)數(shù)器,配置文件共享等所有項(xiàng)目中只需要存在一個(gè)的模塊,你都可以采用單例模式。 單例模式的好處就在于當(dāng)前進(jìn)程只產(chǎn)生一個(gè)對象(或者叫...

    sshe 評論0 收藏0

發(fā)表評論

0條評論

最新活動(dòng)
閱讀需要支付1元查看
<