行為模式

開放

迭代器

迭代器是一種行為設計模式。表示一個對象,該對象允許順序訪問聚合對象的元素,而無需使用每個聚合對象的描述。

迭代器

例如,可以使用 Iterator 對象遍歷(和修改)樹、鍊錶、哈希表和數組等元素。

遍曆元素是由迭代器對象完成的,而不是由集合本身完成的。這簡化了集合的接口和實現,並促進了更符合邏輯的關注點分離。

完全實現的迭代器的一個特徵是使用迭代器的代碼可能不知道迭代聚合的類型。

這種方法經常使用。例如,您向數據庫發送一個 SQL 查詢,作為響應它會返回一個迭代器(在 SQL 術語中,它通常稱為游標)。在生成的迭代器的幫助下,您可以從 SQL 響應中逐行提取行。

命令

命令是一種用於面向對象編程的行為設計模式,代表一個動作。命令對象包含操作本身及其參數。

命令

要調用方法,您通常需要:

  • 對象引用
  • 方法名(方法引用)
  • 方法參數值
  • 引用包含所用對象的上下文

所有這些數據都需要打包到一個對像中——命令(command)。

但這還不是全部:畢竟,必須有人執行命令。所以這個模式又包含了四個實體:命令(command)、命令接收者(receiver)、命令調用者(invoker)和客戶端(client)。

一個東西命令知道接收器並調用接收器方法。接收器參數值存儲在命令中。調用者(調用者)知道如何執行命令並可能跟踪已執行的命令。調用者(調用者)對特定命令一無所知,它只知道接口。

兩個對象(調用對象和幾個命令對象)都屬於客戶端對象。客戶端決定執行哪些命令以及何時執行。要執行命令,它將命令對像傳遞給調用者(invoker)。

使用命令對象可以輕鬆構建您需要隨時委託或進行方法調用的共享組件,而無需知道類方法或方法參數。

使用調用者對象(調用者)允許您跟踪已執行的命令,而無需客戶端了解此記賬模型(此類記賬可能很有用,例如,用於執行命令撤消和重做)。

例如,您正在編寫一個允許您按計劃執行各種任務的程序。一方面,您的程序跟踪任務並管理它們的啟動,另一方面,它可以有多個執行器,每個執行器都可以執行自己類型的命令。比如發短信,發信,發消息到Telegram等。

觀察員

觀察者是一種行為設計模式。實現一種類機制,允許此類的對象接收有關其他對象狀態變化的通知,從而觀察它們。

觀察員

其他類訂閱的類稱為 Subjects 訂閱類稱為Observers

在實現觀察者模式時,常用到以下類:

  • Observable——定義添加、移除和通知觀察者的方法的接口;
  • Observer——觀察者接收通知的接口;
  • ConcreteObservable是實現Observable接口的具體類;
  • ConcreteObserver是實現Observer接口的具體類。

當系統:

  • 至少有一個對象發送消息;
  • 至少有一個消息接收者,他們的數量和組成可能會在應用程序運行時發生變化;
  • 避免交互類的強耦合。

這種模式通常用於消息發送者對接收者如何處理提供給他們的信息不感興趣的情況。

遊客

訪問者是一種行為設計模式,描述了對其他類的對象執行的操作。當訪問者改變時,不需要改變服務的類。

該模板演示了在不訴諸雙重分派向下轉型的情況下恢復丟失的類型信息的經典技術。

遊客

你需要對一些對像做一些斷開連接的操作,但是你需要避免污染它們的代碼。並且沒有辦法或希望在執行所需操作之前查詢每個節點的類型並將指針轉換為正確的類型。

在以下情況下應使用該模板:

  • 不同類的各種對像有不同的接口,但必須依賴於特定的類對其進行操作;
  • 在結構上,需要進行各種使結構複雜化的操作;
  • 通常會添加對結構的新操作。

調解員

Mediator是一種行為設計模式,它允許多個對象進行交互,同時保持鬆散耦合併避免對象之間顯式引用的需要。

調解員

Mediator 模式允許您確保許多對象的交互,同時形成鬆散耦合併消除對象之間顯式引用的需要。

中介者定義了一個與對象交換信息的接口同事,一個特定的中介協調對象的動作同事.

每個同事類都知道它的對象調解員, 所有同事只與中間人交換信息,如果他不在,他們將不得不直接交換信息。

同事向 Reseller/span>發送請求並從中接收請求。中介者通過將每個請求轉發給一個或多個來實現合作行為同事.

1
任務
Module 3 a ɛto so abien,  等級 17課堂 0
上鎖
Total Iteration
task4113
1
任務
Module 3 a ɛto so abien,  等級 17課堂 0
上鎖
Easy-calculator
task4114
1
任務
Module 3 a ɛto so abien,  等級 17課堂 0
上鎖
You've Got a Discount!
task4115
1
任務
Module 3 a ɛto so abien,  等級 17課堂 0
上鎖
Wool and Stars
task4116
1
任務
Module 3 a ɛto so abien,  等級 17課堂 0
上鎖
Greetings in this Chat
task4117
留言
  • 受歡迎
你必須登入才能留言
此頁面尚無留言