Java責(zé)任鏈設(shè)計模式實例分析
本文實例講述了Java責(zé)任鏈設(shè)計模式。分享給大家供大家參考,具體如下:
一 代碼
abstract class AbstractHandler {
private Handler Handler = null;// 持有責(zé)任鏈中下一個責(zé)任處理者的引用
public void setHandler( Handler handler ) {
this.Handler = handler;
}
public Handler getHandler() {
return Handler;
}
}
interface Handler {
public void operator(); // 處理份內(nèi)工作的方法
}
class MyHandler extends AbstractHandler implements Handler {
private String name;
public MyHandler( String name ) {
this.name = name;
}
@Override
public void operator() {
System.out.println(name + ":責(zé)任經(jīng)過我頭上?。?);
if (getHandler() != null) {
System.out.println(name + ":我把責(zé)任交給了" + getHandler());
getHandler().operator();
} else {
System.out.println(name + "我處理了責(zé)任??!");
}
}
@Override
public String toString() {
return name;
}
}
public class TestChainOfResponsibility {
public static void main( String[] args ) {
MyHandler h1 = new MyHandler("h1");// 新建一個名字為h1的事務(wù)處理者
MyHandler h2 = new MyHandler("h2");// 新建一個名字為h2的事務(wù)處理者
MyHandler h3 = new MyHandler("h3");// 新建一個名字為h3的事務(wù)處理者
h1.setHandler(h2);// h1的下級設(shè)為h2,那么h1可以把責(zé)任交給h2
h2.setHandler(h3);// h2的下級設(shè)為h3,那么h2可以把責(zé)任交給h3
h1.operator();// 調(diào)用h1的事務(wù)處理函數(shù)
}
}
二 運行
h1:責(zé)任經(jīng)過我頭上!!
h1:我把責(zé)任交給了h2
h2:責(zé)任經(jīng)過我頭上??!
h2:我把責(zé)任交給了h3
h3:責(zé)任經(jīng)過我頭上??!
h3我處理了責(zé)任?。?/p>
三 類圖

更多java相關(guān)內(nèi)容感興趣的讀者可查看本站專題:《Java面向?qū)ο蟪绦蛟O(shè)計入門與進階教程》、《Java數(shù)據(jù)結(jié)構(gòu)與算法教程》、《Java操作DOM節(jié)點技巧總結(jié)》、《Java文件與目錄操作技巧匯總》和《Java緩存操作技巧匯總》
希望本文所述對大家java程序設(shè)計有所幫助。
- Java設(shè)計模式之橋接模式實例詳解
- java設(shè)計模式之橋接模式(Bridge)
- Java結(jié)構(gòu)型設(shè)計模式中的適配器模式與橋接模式解析
- 輕松掌握Java橋接模式
- Java使用橋接模式實現(xiàn)開關(guān)和電燈照明功能詳解
- Java 中橋接模式——對象結(jié)構(gòu)型模式的實例詳解
- 23種設(shè)計模式(9) java橋接模式
- Java開發(fā)中的23種設(shè)計模式詳解(推薦)
- Java設(shè)計模式之靜態(tài)工廠模式詳解
- Java設(shè)計模式編程中簡單工廠與抽象工廠模式的使用實例
- Java橋接模式實例詳解【簡單版與升級版】
相關(guān)文章
Java中的ConcurrentLinkedQueue松散隊列解析
這篇文章主要介紹了Java中的ConcurrentLinkedQueue松散隊列解析,鏈表是松散的,鏈表節(jié)點并不都是有效的,允許存在無效節(jié)點val=null,但是只有最后一個節(jié)點才能next=null,需要的朋友可以參考下2023-12-12
Spring Cloud Feign實現(xiàn)文件上傳下載的示例代碼
Feign框架對于文件上傳消息體格式并沒有做原生支持,需要集成模塊feign-form來實現(xiàn),本文就詳細的介紹一下如何使用,感興趣的可以了解一下2022-02-02
java兩個integer數(shù)據(jù)判斷相等用==還是equals
本文主要介紹了java兩個integer數(shù)據(jù)判斷相等用==還是equals,文中通過示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下2021-12-12
Java 1,2,3,4能組成多少個互不相同且無重復(fù)數(shù)字的實現(xiàn)代碼
這篇文章主要介紹了Java 1,2,3,4能組成多少個互不相同且無重復(fù)數(shù)字的實現(xiàn)代碼,需要的朋友可以參考下2017-02-02
Java方法重寫_動力節(jié)點Java學(xué)院整理
在Java和其他一些高級面向?qū)ο蟮木幊陶Z言中,子類可繼承父類中的方法,而不需要重新編寫相同的方法。但有時子類并不想原封不動地繼承父類的方法,而是想作一定的修改,這就需要采用方法的重寫。方法重寫又稱方法覆蓋,下文給大家介紹java方法重寫及重寫規(guī)則,一起學(xué)習(xí)吧2017-04-04
mybatis-plus(insertBatchSomeColumn批量添加方式)
這篇文章主要介紹了mybatis-plus(insertBatchSomeColumn批量添加方式),具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2023-03-03

