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;
    };

  • 相关阅读:
    手指抽搐强迫症 之 APM病理分析器 v0.0.0.3 (11月24日更新)
    [转帖]修改MySql密码及访问限制设置详解
    C#学习笔记
    CodeSmith快速向导
    奇葩的maxscript
    MASM中可以定义的变量类型
    js琐记
    史上最全的css hack(ie69,firefox,chrome,opera,safari)
    逆向win32程序的思路琐记
    makefile伪目标
  • 原文地址:https://www.cnblogs.com/SkyMouse/p/2340727.html
Copyright © 2011-2022 走看看