日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > java >内容正文

java

java责任链模式做优惠_Java设计模式菜鸟系列(十八)责任链模式建模与实现

發布時間:2025/3/20 java 25 豆豆
生活随笔 收集整理的這篇文章主要介紹了 java责任链模式做优惠_Java设计模式菜鸟系列(十八)责任链模式建模与实现 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

責任鏈模式(ChainOfResponsibility): 有多個對象,每個對象持有下一個對象的引用,形成一條鏈,請求在這條鏈上傳遞,直到某一對象決定處理該請求,但是發出者并不清楚最終哪個對象會處理該請求。

一、uml建模:

二、代碼實現

/**

* 責任鏈模式:有多個對象,每個對象持有下一個對象的引用,形成一條鏈,

*

* 請求在這條鏈上傳遞,直到某一對象決定處理該請求,

*

* 但是發出者并不清楚最終哪個對象會處理該請求。

*/

interface Handler {

public void operator();

}

/**

* 這里單獨對Handler進行封裝,方便修改引用對象

*/

abstract class AbstractHandler implements Handler {

private Handler handler;

public Handler getHandler() {

return handler;

}

public void setHandler(Handler handler) {

this.handler = handler;

}

}

class MyHandler extends AbstractHandler implements Handler {

private String name;

public MyHandler(String name) {

this.name = name;

}

@Override

public void operator() {

if (getHandler() != null) {

System.out.print(name + ",將BUG交給——>");

/**

* 這里是關鍵。【注意1】這里不是遞歸哦~

*

* 遞歸:A(operator)——>A(operator)——>A(operator)

*

* 責任鏈:A(operator)——>B(operator)——>C(operator)

*/

getHandler().operator();

} else {

System.out.println(name + "處理BUG...\n");

}

}

}

/**

* 客戶端測試類

*

* @author Leo

*/

public class Test {

public static void main(String[] args) {

MyHandler handler1 = new MyHandler("技術總監");

MyHandler handler2 = new MyHandler("項目經理");

MyHandler handler3 = new MyHandler("程序員");

/**

* 如果沒有下家,將會自行處理

*

* 打印結果:技術總監處理BUG...

*/

handler1.operator();

/**

* 只要有下家,就傳給下家處理

*

* 下面的打印結果:技術總監,將BUG交給——>項目經理,將BUG交給——>程序員處理BUG...

*

* 就這樣,原本是技術總監自行處理的BUG,現在一層一層的把責任推給了程序員去處理

*/

handler1.setHandler(handler2);

handler2.setHandler(handler3);

/**

* 透過打印結果可以知道:MyHandler實例化后將生成一系列相互持有的對象(handler),構成一條鏈。

*/

handler1.operator();

/**

* 【注意2】責任鏈不是鏈表:鏈表有個頭結點,咱每次必須通過頭結點才能訪問后面的節點

*

* 而責任鏈它可以從頭訪問,也可以從中間開始訪問,如:handler2.operator();

*/

}

}

三、總結

1、責任鏈模式可以實現,在隱瞞客戶端(不知道具體處理的人是誰)的情況下,對系統進行動態的調整。 2、鏈接上的請求可以是一條鏈,可以是一個樹,還可以是一個環,模式本身不約束這個,需要自己去實現,同時,在一個時刻,命令只允許由一個對象傳給另一個對象,而不允許傳給多個對象。

總結

以上是生活随笔為你收集整理的java责任链模式做优惠_Java设计模式菜鸟系列(十八)责任链模式建模与实现的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。