真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

java設(shè)計模式中責(zé)任鏈模式的示例分析

這篇文章主要為大家展示了“java設(shè)計模式中責(zé)任鏈模式的示例分析”,內(nèi)容簡而易懂,條理清晰,希望能夠幫助大家解決疑惑,下面讓小編帶領(lǐng)大家一起研究并學(xué)習(xí)一下“java設(shè)計模式中責(zé)任鏈模式的示例分析”這篇文章吧。

創(chuàng)新互聯(lián)于2013年成立,先為杜爾伯特等服務(wù)建站,杜爾伯特等地企業(yè),進(jìn)行企業(yè)商務(wù)咨詢服務(wù)。為杜爾伯特企業(yè)網(wǎng)站制作PC+手機(jī)+微官網(wǎng)三網(wǎng)同步一站式服務(wù)解決您的所有建站問題。

責(zé)任鏈模式里面的很多對象對其下家的引用而形成一條連鎖,請求在這個鏈條上傳遞,直到被處理完畢,而客戶端并不知道鏈條上哪個鏈接點(diǎn)處理了這個事件。開發(fā) Web 項(xiàng)目的時候,過濾器就是這樣工作的,過濾器互相嵌套,一個接著一個處理請求。這個好處就是在客戶端不在意的情況下動態(tài)處理連接點(diǎn)以及分配任務(wù)。

按照慣例,先上 UML 類圖

java設(shè)計模式中責(zé)任鏈模式的示例分析

  • Handler :抽象處理角色,定義一個處理請求的接口,可以設(shè)定返回下家的引用;

  • ConcreteHandler:具體處理角色,接收到請求的具體處理者,可以選擇處理也可以不處理,把請求傳遞下一個連接點(diǎn)。

看下具體的代碼:
先把抽象處理者寫出來,他是一個抽象類或者接口,這里使用抽象類,每個處理者給一個名字 name 屬性

public abstract class Handler {    private String name;    public String getName() {        return name;
    }    public void setName(String name) {        this.name = name;
    }    public Handler(String name) {        this.name=name;
    }    protected Handler handler;    public Handler getHandler() {        return handler;
    }    public void setHandler(Handler handler) {        this.handler = handler;
    }    public abstract void handle();


}

再把具體的處理者實(shí)現(xiàn)出來

public class ConcreteHandler extends Handler{    public ConcreteHandler(String name) {        super(name);
    }    @Override
    public void handle() {

        System.out.println("當(dāng)前處理:"+getName());        if(getHandler()!=null){
            getHandler().handle();
        }

    }

}

在該具體方法的 handle 里面,處理自個當(dāng)前需要做的事件,然后尋找后續(xù)處理者,把到最后完成。

看下客戶端如何處理

public class Client {    public static void main(String[] args) {
        Handler h2=new ConcreteHandler("handler1");
        Handler h3=new ConcreteHandler("handler2");
        h2.setHandler(h3);
        h2.handle();
    }
}

在責(zé)任鏈模式當(dāng)中,對處理者而言,一旦一個請求只有一個處理者處理了,稱之為純的責(zé)任鏈模式,然并卵,現(xiàn)實(shí)沒有這么純的責(zé)任鏈;那么不純的就是一個請求被0個或多個處理者處理了,這個情況很常見。責(zé)任鏈?zhǔn)沟每蛻舳苏埱笈c接收端處理減低耦合度,使得多個處理者都可以處理這個請求。這個鏈可以是一棵樹,也可以是鏈表,也可以是個環(huán)。但是每個處理者只可以傳遞任務(wù)給下一個處理者,或者自己處理掉,不可能同時傳遞多個。

以上是“java設(shè)計模式中責(zé)任鏈模式的示例分析”這篇文章的所有內(nèi)容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內(nèi)容對大家有所幫助,如果還想學(xué)習(xí)更多知識,歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道!


文章名稱:java設(shè)計模式中責(zé)任鏈模式的示例分析
文章位置:http://weahome.cn/article/pgdoci.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部