Java責(zé)任鏈設(shè)計(jì)模式實(shí)例分析
本文實(shí)例講述了Java責(zé)任鏈設(shè)計(jì)模式。分享給大家供大家參考,具體如下:
一 代碼
abstract class AbstractHandler {
private Handler Handler = null;// 持有責(zé)任鏈中下一個(gè)責(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)過(guò)我頭上?。?);
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");// 新建一個(gè)名字為h1的事務(wù)處理者
MyHandler h2 = new MyHandler("h2");// 新建一個(gè)名字為h2的事務(wù)處理者
MyHandler h3 = new MyHandler("h3");// 新建一個(gè)名字為h3的事務(wù)處理者
h1.setHandler(h2);// h1的下級(jí)設(shè)為h2,那么h1可以把責(zé)任交給h2
h2.setHandler(h3);// h2的下級(jí)設(shè)為h3,那么h2可以把責(zé)任交給h3
h1.operator();// 調(diào)用h1的事務(wù)處理函數(shù)
}
}
二 運(yùn)行
h1:責(zé)任經(jīng)過(guò)我頭上??!
h1:我把責(zé)任交給了h2
h2:責(zé)任經(jīng)過(guò)我頭上?。?br /> h2:我把責(zé)任交給了h3
h3:責(zé)任經(jīng)過(guò)我頭上??!
h3我處理了責(zé)任?。?/p>
三 類(lèi)圖

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

