国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

Java設(shè)計(jì)模式-責(zé)任鏈(Chain of Responsibility)模式

這篇具有很好參考價(jià)值的文章主要介紹了Java設(shè)計(jì)模式-責(zé)任鏈(Chain of Responsibility)模式。希望對大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問。

介紹

Java責(zé)任鏈(Chain of Responsibility)設(shè)計(jì)模式是指很多處理對象構(gòu)成一個(gè)鏈,鏈中前一個(gè)對象指向后一個(gè)對象。請求在鏈中傳遞,一個(gè)請求可以被一個(gè)或者多個(gè)對象處理。調(diào)用方(即客戶端)不知道請求會被鏈中的哪個(gè)對象處理,所以責(zé)任鏈模式可以方便組織責(zé)任鏈而不影響調(diào)用方。
責(zé)任鏈模式一般定義抽象類或者接口來規(guī)范行為,而定義具體類實(shí)現(xiàn)具體的處理邏輯。

示例

示例1:Netty中的handler就構(gòu)成了責(zé)任鏈模式

注:下面圖拷貝自Netty的ChannelPipeline API中的圖
Java設(shè)計(jì)模式-責(zé)任鏈(Chain of Responsibility)模式,java,設(shè)計(jì)模式,責(zé)任鏈模式

示例2:一個(gè)簡單的責(zé)任鏈模式代碼示例

package com.thb;

// 定義一個(gè)抽象類,規(guī)范行為
public abstract class AbstractHandler {
	
	private AbstractHandler nextHandler;  // 指向下一個(gè)處理器
	private char startWith;
	
	public AbstractHandler(char startWith) {
		this.startWith = startWith;
	}
	
	// 處理邏輯的抽象方法
	public abstract void handleMessage(String msg);	
	
	// 設(shè)置下一個(gè)處理器
	public void setNextHandler(AbstractHandler nextHandler) {
		this.nextHandler = nextHandler;
	}
	
	// 取出下一個(gè)處理器
	public AbstractHandler getNextHandler() {
		return this.nextHandler;
	}	
}


// 定義具體類,實(shí)現(xiàn)真正的處理邏輯
package com.thb;

public class Handler extends AbstractHandler {
	
	public Handler(char startWith) {
		super(startWith);
	}
	
	@Override
	public void handleMessage(String msg) {
		// 具體處理邏輯
		if (msg.startsWith("H")) {
			System.out.println("process the message");
		} else {
			if (getNextHandler() != null) {
				getNextHandler().handleMessage(msg);
			} else {
				System.out.println("no suitable hander");
			}
		}		
		
	}

}


// 定義一個(gè)客戶端來模擬調(diào)用
package com.thb;

public class Test2 {
	
	public static void main(String[] args) {
		AbstractHandler handler1 = new Handler('a');
		AbstractHandler handler2 = new Handler('H');
		AbstractHandler handler3 = new Handler('c');
		handler1.setNextHandler(handler2);
		handler2.setNextHandler(handler3);
		
		String msg = "Hello"; 
		handler1.handleMessage(msg);
		
		msg = "world";
		handler1.handleMessage(msg);
	}

}

輸出結(jié)果:
Java設(shè)計(jì)模式-責(zé)任鏈(Chain of Responsibility)模式,java,設(shè)計(jì)模式,責(zé)任鏈模式文章來源地址http://www.zghlxwxcb.cn/news/detail-573473.html

到了這里,關(guān)于Java設(shè)計(jì)模式-責(zé)任鏈(Chain of Responsibility)模式的文章就介紹完了。如果您還想了解更多內(nèi)容,請?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • Java設(shè)計(jì)模式—責(zé)任鏈模式(Chin of Responsibility)

    Java設(shè)計(jì)模式—責(zé)任鏈模式(Chin of Responsibility)

    目錄 前言 一、責(zé)任鏈模式的簡介 二、責(zé)任鏈模式的概念 三、責(zé)任鏈模式的作用 四、責(zé)任鏈模式的優(yōu)、缺點(diǎn) 1.責(zé)任鏈模式的優(yōu)點(diǎn) 2.責(zé)任鏈模式的缺點(diǎn) 五、責(zé)任鏈模式的應(yīng)用場景 六、代碼案例 UML類圖 ?1.定義一個(gè)請求枚舉類 ?2.定義一個(gè)請求類 3.定義一個(gè)抽象處理接口 4、定

    2024年02月08日
    瀏覽(28)
  • 設(shè)計(jì)模式—職責(zé)鏈模式(Chain of Responsibility)

    設(shè)計(jì)模式—職責(zé)鏈模式(Chain of Responsibility)

    目錄 思維導(dǎo)圖 什么是職責(zé)鏈模式? 有什么優(yōu)點(diǎn)呢? 有什么缺點(diǎn)呢? 什么場景使用呢? 代碼展示 ①、職責(zé)鏈模式 ②、加薪代碼重構(gòu) 使多個(gè)對象都有機(jī)會處理請求,從而避免請求的發(fā)送者和接收者之間的耦合關(guān)系。將這個(gè)對象連成一條鏈,并沿著這條鏈傳遞該請求,直到有

    2024年02月10日
    瀏覽(37)
  • 設(shè)計(jì)模式--職責(zé)鏈模式(Chain of Responsibility Pattern)

    職責(zé)鏈模式(Chain of Responsibility Pattern)是一種行為設(shè)計(jì)模式,它為請求創(chuàng)建了一個(gè)接收者對象的鏈。 這種模式給予請求的類型,對請求的發(fā)送者和接收者進(jìn)行解耦。這種類型的設(shè)計(jì)模式屬于行為型模式。 在職責(zé)鏈模式中,通常每個(gè)接收者都包含對另一個(gè)接收者的引用。如果

    2024年02月20日
    瀏覽(21)
  • 責(zé)任鏈模式(Chain of Responsibility)

    責(zé)任鏈模式(Chain of Responsibility)

    命令鏈(Chain of Command)。 責(zé)任鏈?zhǔn)且环N行為設(shè)計(jì)模式 , 允許你將請求沿著處理者鏈進(jìn)行發(fā)送。收到請求后,每個(gè)處理者均可對請求進(jìn)行處理,或?qū)⑵鋫鬟f給鏈上的下個(gè)處理者 。 1. 問題 假如你正在開發(fā)一個(gè)在線訂購系統(tǒng)。你希望對系統(tǒng)訪問進(jìn)行限制, 只允許認(rèn)證用戶創(chuàng)建

    2024年02月11日
    瀏覽(24)
  • 責(zé)任鏈模式(Chain of Responsibility)

    責(zé)任鏈模式是對象的行為模式。使多個(gè)對象都有機(jī)會處理請求,從而避免請求的發(fā)送者和接受者直接的耦合關(guān)系。

    2024年02月05日
    瀏覽(30)
  • Java設(shè)計(jì)模式——責(zé)任鏈模式

    當(dāng)一個(gè)請求需要在多個(gè)對象之間傳遞,每個(gè)對象都可能處理該請求或?qū)⑵鋫鬟f給下一個(gè)對象。在這種情況下,需要避免將發(fā)送者與接收者之間的耦合,以及確定請求的處理方式。此時(shí)可使用責(zé)任鏈模式,它的優(yōu)點(diǎn)有降低耦合度(無需關(guān)心哪個(gè)對象會處理請求),靈活性(可以

    2024年02月21日
    瀏覽(19)
  • Java設(shè)計(jì)模式-責(zé)任鏈模式

    責(zé)任鏈模式,有的地方也會叫職責(zé)鏈模式。它指的是,為請求者和被請求者之間創(chuàng)建一條對象處理鏈路,避免請求發(fā)送者與接受者耦合在一起。 在責(zé)任鏈模式里,很多對象由每一個(gè)對象對其下家的引用而連接起來形成一條鏈。請求在這個(gè)鏈上傳遞,直到鏈上的某一個(gè)對象決定

    2024年02月15日
    瀏覽(23)
  • java設(shè)計(jì)模式(十五)責(zé)任鏈模式

    java設(shè)計(jì)模式(十五)責(zé)任鏈模式

    責(zé)任鏈模式(Chain of Responsibility) 使多個(gè)對象都有機(jī)會處理請求,從而避免請求的發(fā)送者和接受者之間的耦合關(guān)系。將這些對象連成一條鏈,并沿著這條鏈傳遞該請求,直到有對象能夠處理它。 抽象處理類: 主要包含一個(gè)指向下一處理類的成員變量 nextHandler 和一個(gè)處理請求的方

    2024年02月08日
    瀏覽(22)
  • 設(shè)計(jì)模式之責(zé)任鏈模式【Java實(shí)現(xiàn)】

    設(shè)計(jì)模式之責(zé)任鏈模式【Java實(shí)現(xiàn)】

    責(zé)任鏈(chain of Resposibility) 模式:為了避免請求發(fā)送者與多個(gè)請求處理者耦合在一起,于是將所有請求的處理者 通過前一對象記住其下一個(gè)對象的引用而連成一條鏈 ;當(dāng)有請求發(fā)生時(shí),可將請求沿著這條鏈傳遞,直到有對象處理它位置。屬于對象行為型模式。 抽象處理者

    2024年02月12日
    瀏覽(21)
  • 【Java 設(shè)計(jì)模式】行為型之責(zé)任鏈模式

    責(zé)任鏈模式(Chain of Responsibility Pattern)是一種行為型設(shè)計(jì)模式,用于將請求發(fā)送者和接收者解耦,使得多個(gè)對象都有機(jī)會處理請求。責(zé)任鏈模式通過創(chuàng)建一個(gè)處理請求的鏈,將請求沿著鏈傳遞,直到有一個(gè)對象能夠處理為止。在本文中,我們將深入研究Java中責(zé)任鏈模式的定

    2024年01月24日
    瀏覽(23)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包