設計模式之責任鏈模式 做人要有點責任感!

2021-10-03 05:54:03 字數 1586 閱讀 7866

五、責任鏈模式的優缺點

責任鏈模式也叫職責鏈模式,屬於行為模式,該模式構造一系列分別擔當不同職責的類物件,來共同完成乙個任務, 這些類物件之間像鏈條一樣緊密相連,所以被稱作職責鏈模式。

1、有多個物件可以處理同乙個請求,具體哪個物件處理該請求由執行時刻自動確定。

2、當需要向多個物件中的乙個提交乙個請求時,可以使用職責鏈模式。

3、可以動態指定一組物件處理請求時,可以使用職責鏈模式。

處理抽象父類給處理具體類提供統一的共同介面和方法。

處理具體類繼承處理抽象父類,用於實現處理抽象父類中的共同介面和方法。

四、責任鏈模式的示例

// responsibilitypattern.cpp : 此檔案包含 "main" 函式。程式執行將在此處開始並結束。

//#include

#include

using

namespace std;

#define delete_ptr(p) }

// 員工請求類

class

employeerequest

m_contentstr = contentstr;

} string getrequestcontent()

void

setrequestcount

(int count)

m_count = count;

}int

getrequestcount()

private

: string m_contentstr;

int m_count;};

// 處理基類-管理者抽象類

class

manager

m_pmanager = pmanager;

return pmanager;

}virtual

void

handlework

(employeerequest *pemployeerequest)=0

;protected

: manager *m_pmanager;};

// 處理具體類-管理者具體實現類

// 部門經理

class

departmanager

:public manager

else}}

};// 總監

class

monitormanager

:public manager

else}}

};// 總經理

class

generalmanager

:public manager

else}}

};intmain()

1、責任的分擔明確, 每個類只需要處理自己該處理的工作 ,明確各個類的責任範圍。

2、降低耦合度,將請求的傳送者和接收者進行解耦,類與類之間以松耦合的形式組織起來。

3、靈活性強,可以根據業務流程的變化進行自由組合物件鏈。

1、處理時以鏈的形式在多個物件間傳遞訊息,系統的效能有可能會受到影響,處理的速

度會變慢。

能力有限,如有錯誤,多多指教。。。

設計模式之 責任鏈模式

在一些情況下,對乙個訊息 含事件 的響應和處理需要很多物件來參與,這些物件對訊息的處理有前後順序,形成乙個處理鏈條,但物件是否真正處理訊息有賴於在它之前的物件的處理策略,前乙個物件處理後,後乙個物件則不需參與處理,這就是責任鏈模式。現實中有很多類似的場景,比如上訪,上訪一般是從最基層的信訪部門接受信...

設計模式之(責任鏈模式)

chain of responsibleity 責任鏈模式 在責任鏈模式 中,很多物件由每乙個物件對其下家的引用而接。起來形成一條鏈。請求在這個鏈上傳遞,直到鏈上的某乙個物件決定處理此請求。客戶並不知道鏈上的哪乙個物件最終處理這個請求,系統可以在不影響客戶端的情況下動態的重新組織鏈和分配責任。處理者...

設計模式之責任鏈模式

假設現在乙個公司的請假流程如下 一天及以下由小組組長審批,一天以上三天以下由經理審批,三天以上七天以下由老闆審批,七天以上直接勸退。如果每次請假時都很長的if else 來判斷該去找誰請假,很不容易擴充套件,我們使用責任鏈模式來實現。首先,是乙個抽象的父類 public abstract class...