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

  • 相关阅读:
    Spring中的Bean相关问题
    请谈一下spring bean的生命周期
    请谈一谈IOC中的继承和Java中的继承有什么区别
    谈谈你对Spring IOC和DI的理解,以及它们的区别
    Spring中用到了哪些设计模式
    JAVA自学笔记11
    JAVA自学笔记14
    JAVA自学笔记12
    JAVA自学笔记15
    JAVA自学笔记18
  • 原文地址:https://www.cnblogs.com/SkyMouse/p/2340727.html
Copyright © 2011-2022 走看看