餐館那些事之 Mediator Pattern

2021-06-04 04:40:38 字數 1387 閱讀 6373

1. 概述

mediator pattern:封裝了

一組物件之間的互動,使得物件之間保持松耦合的關係,避免物件維護複雜的關係互動。

簡單的說,mediator封裝的是互動。

類圖:object例項之間的互動,統一由mediator維護。

2. 例項

餐館有cook和waiter,cook之間需要彼此交流配合,也需要和waiter進行交流, 例如乙個廚師請另乙個廚師幫忙切菜,廚師請waiter將菜送給客人。

人多了,溝通就不順暢了,為此,配乙個協調員,彼此之間的互動,統一由協調員傳達。

**:

#include #include #include using namespace std;

class mediator;

//object

class employee

virtual void send(string, string) = 0;

virtual void receive(string, string) = 0;

protected:

string _name;

mediator* _mediator;

};//mediator

class mediator

void send(string name_from, string name_to, string context)

else

}private:

map_map_name_employee;

};//concrete_object_1

class cook : public employee

void send(string name, string context)

void receive(string name, string context)

};//concrete_object_2

class waiter : public employee

void send(string name, string context)

void receive(string name, string context)

};//client

int main()

輸出:zhang san request to li si : qie cai

li si   receive request from zhang san : qie cai

zhang san request to cui hua : shang shuan cai

cui hua receive request from zhang san : shang shuan cai

餐館那些事之 介面實現分離

1.概念 gof書中提到,物件導向程式設計第一原則 program to an inte ce,not an implementation 這是介面實現分離的基本思想。我的理解 在開發過程中,在外部使用者和實現者之間加入一層介面,外部使用者呼叫介面為其服務,實現者針對介面進行實現。外部使用者和實現者...

前端那些事之 jQuery

1.jquery是什麼 乙個js的框架,可以方便的使用js 2 什麼是jquery物件 是由jquery封裝後的dom物件 注意 與dom物件的方法不同,不可以混用,但是可以相互轉換 3.基本語法 jquery物件.方法 4.得到jquery物件 1 選擇器 基本選擇器 id class eleme...

Http之Auth的那些事

謹以此文獻給那些需要實現http auth的 程式猿 們。關於http auth的文件不多。rfc在 wiki在 使用http auth需要在server端配置http auth資訊 一般是webserver啟動的時候從配置檔案裡面讀取相關資訊 我用中文簡述一下http auth的過程 一次典型的訪...