Посредник (англ. Mediator) — поведенческий шаблон проектирования презентация

Проблема Обеспечить взаимодействие множества объектов, сформировав при этом слабую связанность и избавив объекты от необходимости явно ссылаться друг на друга.

Слайд 1Посредник (англ. Mediator) — поведенческий шаблон проектирования, обеспечивающий взаимодействие множества объектов,

формируя при этом слабую связанность и избавляя объекты от необходимости явно ссылаться друг на друга.

Слайд 2Проблема

Обеспечить взаимодействие множества объектов, сформировав при этом слабую связанность и избавив

объекты от необходимости явно ссылаться друг на друга.

Слайд 3Решение

Создать объект, инкапсулирующий способ взаимодействия множества объектов.


Слайд 4Преимущества

Устраняется связанность между "Коллегами", централизуется управление.


Слайд 6#include #include using namespace std; class master; class senior_slave; class slave; class slave_1_type; class slave_2_type;


Слайд 7class slave { protected: bool lazy; senior_slave* almoust_master;

public: bool get_laziest() { return lazy; } void set_almoust_master(senior_slave* x) { almoust_master=x; } }; class slave_1_type: public slave { public: slave_1_type() { lazy=true; } }; class slave_2_type: public slave { public: slave_2_type() { lazy=false; } };

Слайд 8class senior_slave { master*x; vector slaves; public: void

add_slave(slave* x) { slaves.push_back(x); } int count_of_not_lazy() { int n=0; for(int i=0;iget_laziest()==0)n++; } return n; } void set_master(master*y) { x=y; } };

Слайд 9class master { senior_slave*x; int count_of_not_lazy_slaves; public: void

let_me_see_count_of_not_lazy_slaves() { count_of_not_lazy_slaves=x->count_of_not_lazy(); } void boast() { cout<

Слайд 10int main() { slave*z; senior_slave*y; master*x; x=new master();

y=new senior_slave(); x->set_senior_slave(y); y->set_master(x); for(int i=0;i<10;i++) { z=new slave_1_type(); z->set_almoust_master(y); y->add_slave(z); } for(int i=0;i<8;i++) { z=new slave_2_type(); z->set_almoust_master(y); y->add_slave(z); } x->let_me_see_count_of_not_lazy_slaves(); x->boast(); return 0; }

Обратная связь

Если не удалось найти и скачать презентацию, Вы можете заказать его на нашем сайте. Мы постараемся найти нужный Вам материал и отправим по электронной почте. Не стесняйтесь обращаться к нам, если у вас возникли вопросы или пожелания:

Email: Нажмите что бы посмотреть 

Что такое ThePresentation.ru?

Это сайт презентаций, докладов, проектов, шаблонов в формате PowerPoint. Мы помогаем школьникам, студентам, учителям, преподавателям хранить и обмениваться учебными материалами с другими пользователями.


Для правообладателей

Яндекс.Метрика