设计模式-中介者模式

学习笔记:中介者模式
模式简介

:属于行为型模式,用来降低多个对象相互通信的复杂度。

为什么用

:解耦解耦,使得对象之间不必显式的相互引用。

怎么样用

:把每个需要通信的类的数据写到一个中介者的类中,通信类调用中介者类的方法实现数据传递和功能实现。

注意事项

:方法一般定义成静态好使用一点。

实际举例

:游戏各种消息的展示。

#include <iostream>
using namespace std;
//中介者-信息展示栏
class Mediator {
public:
    static void show_person(string name,string message) {
        cout << name << ":" << message << "\n";
    }
    static void show_fight(string message) {
        cout <<"fight" <<":"<<message << "\n";
    }
};
//人物类
class Person {
private:
    string name;
public:
    friend class Fight;
    Person(string _name) {
        this->name = _name;
    }
    void show(string message) {
        Mediator::show_person(name,message);
    }
};
//战斗类
class Fight {
private:
    Person* person1,*person2;
public:
    Fight(Person *person1,Person *person2) {
        this->person1 = person1;
        this->person2= person2;
    }
    void display() {
        Mediator::show_fight(person1->name+" attacked "+person2->name);
    }
};
int main(){
    //实际信息的显示全部由中介者代替
    //人物
    Person *person1=new Person("moota");
    Person* person2 = new Person("vicky");
    person1->show("Hi");
    person2->show("Hi,nice to meet you!");
    //战斗
    Fight *fight=new Fight(person1,person2);
    fight->display();
    return 0;
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值