zoukankan      html  css  js  c++  java
  • 设计模式学习—Mediator(中介者)

    意图:用一个中介对象来封装一系列的独享交互。中介者使得各对象不需要显式的相互引用,从而使得其耦合松散,而且可以独立的改变他们之间的交互.

    适用性:

    一组对象以定义好,但是通信复杂,相互依赖关系结构混乱

    一个对象引用其他对象并且直接通信

    想定制一个分布在多个类中的行为,但是又不想定义多个子类

    示例图:

    示例程序:

    //信息变化之后通知中介者,中介者来调用相关对象进行相应的控制

    class CMediator
    {
    public:
        CMediator();
    public:
        ~CMediator(void);
        public:
        void InfoChanged(int id)
        {
            m_PTitle->SetId(id);   
        }
        void SetTitle(CTitle* pTitle)
        {
            m_PTitle = pTitle;
        }
        public:
        void ShowTitle()
        {
            m_PTitle->Show();
        }
        private:
        CTitle* m_PTitle;
    };

    #include "Mediator.h"
    class CInfo
    {
    public:
        CInfo();
    public:
        ~CInfo(void);
    public:
        void SetMediaotr(CMediator* pMediat)
        {
            this->m_pMedia = pMediat;
        }
        virtual void Change(int newId)
        {
            id = newId;
            m_pMedia->InfoChanged(newId);
        }
        int GetID()
        {
            return id;
        }
    private:
        int id;
        CMediator* m_pMedia;
    };

  • 相关阅读:
    Java设计模式6
    数据库的三范式是什么?
    Mysql 索引的原理和实现
    Java Calendar
    读书-《众病之王:癌症传》-癌症的历史
    Numpy的终极备忘录
    监督学习和kNN分类初学者教程
    用PyTorch实现图像聚类
    Pandas概论
    掌握Python字典的12个例子
  • 原文地址:https://www.cnblogs.com/SkyMouse/p/2340727.html
Copyright © 2011-2022 走看看