中介者(Mediator)

谷粒商城学习笔记-15-数据库初始化 这一节的主要内容是把创建对应的数据库和数据库表。 阅读详情

 

这个模式的定义就很简单用一个中介对象来封装一系列的对象交互。中介者

使各对象不需要显式地相互引用,从而使其耦合松散,而且可以独立地改变

它们之间的交互。好处是什么呢?很显然就是为了降低复杂度.使的原本使多

对多关系.现在变成了1对多关系.因为所有对象都只和Mediator中介者单线联

系.而中介者隐士的包含了对象之间的关系.下面还是举个简单的事例.如:小王

要把稿件交给小李.小李要把书籍交给小张.小张要把笔交给小王.并且小张要

把随身听交给小李.这样如果对象和对象之间交互会显得很复杂.如果他们只

是把物品交给一个中介人.在由中介人负责派分物品.这样每个人都只和中介人

建立联系.而中介人维护对象之间的关系.

//还是从接口开始
public interface IPerson{
   string Name(get;);
   ArrayList Article {get;set;}//每个人可能有多个物品
}

public class Wang : IPerson{
   private string name="Wang";
   private ArrayList article;

   public string Name{
      get{return name;}
   }

   public ArrayList Article{
       get{return article;}
       set{article=value;}
   }
  //.......做其他的事情
}

public class Zhang : IPerson{
   private string name="Zhang";
   private ArrayList article;

   public string Name{
      get{return name;}
   }

   public ArrayList Article{
       get{return article;}
       set{article=value;}
   }
  //.......做其他的事情
}

public class Lee:IPerson{
   private string name="Lee";
   private ArrayList article;

   public string Name{
      get{return name;}
   }

   public ArrayList Article{
       get{return article;}
       set{article=value;}
   }
  //.......做其他的事情
}


//中介人
public interface IMediator {
 //交换物品
   void SweapArticle(IPerson p1,IPerson p2,object at);
}

public class ConcreteMediator : IMediator {
  
   public  void SweapArticle(IPerson p1,IPerson p2,object at){
          p1.Article.Add(p2.Article[at]);
          p2.Article.Remove(at);
   }
}

//实际调用

    public class Client
    {
        public static int Main(string[] args)
        {           
   IMediator m = new ConcerteMediator();
   IPerson wang=new Wang();
                        IPerson zhang=new Zhang();
                        IPerson Lee=new Lee();

                        wang.Article.Add("稿件");
                        zhang.Article.Add("书籍");
                        lee.Article.Add("笔");
                        lee.Article.Add("随身听");

                        //交换开始
                        m.SweapArticle(wang,zhang,"稿件");
                        m.SweapArticle(zhang,lee,"书籍");                                                           m.SweapArticle(lee,zhang,"笔");
                        m.SweapArticle(lee,wang,"随身听");             
            return 0;
        }
    }
}


这个模式的主要目的就是把原本是多对多的关系.变为一对多
要参考我写的所有设计模式,请参考如下链接 http://www.youkuaiyun.com/Develop/list_article.asp?author=yarshray&myclassid=11564&myclassName

至此.常用的20种设计模式已经全部介绍完毕.另外 的设计模式Interpreter 主要用来对语言的分析,很少用.Iterator设计模式基本可以用IList接口中的Indexof方法取代所以不在详细介绍.希望我这三天的努力.可以对大家有点帮助.

红火蚁巢穴AI智能识别,提供方案与思路! 🏆本文收录于 《全栈 Bug 调优(实战版)》 专栏。专栏聚焦真实项目中的各类疑难 Bug,从成因剖析 → 排查路径 → 解决方案 → 预防优化全链路拆解,形成一套可复用、可沉淀的实战知识体系。无论你是初入职场的开发者,还是负责复杂项目的资深工程师,都可以在这里构建一套属于自己的「问题诊断与性能调优」方法论,助你稳步进阶、放大技术价值 。 阅读详情

相关推荐

最详细的Cadence OrCAD Capture自带元件库的介绍

最详细的Cadence OrCAD Capture自带元件库的介绍 本章节将介绍Cadence OrCAD Capture 软件自带的各类元件库的分类,方便大家在设计时能够快速的选择元件。 AMPLIFIER.OLB 共182个零件,存放模拟放大器,IC,如LM386,MAX457等。 ARITHMETIC.OLB 共182个零件...

LGCPCB的博客 6万+

中介者模式及MVP、MVVM上的体现

中介者模式及MVP、MVVM上的体现中介者模式用一个中介对象封装一系列的对象交互,中介者使对象不需要显示地相互作用,从而使其耦合松散,而且可以独立地改变它们之间的交互。 简单的来说 就是把一个蜘蛛网的结构变为星型结构。 蜘蛛网结构星型结构 中介者模式的角色 Mediator抽象角色 定义统一接口,用于各个同事角色之间的通信 Concrete Mediator 协调各同事角色进行协

朱豪凯的博客 2174

IKM 测试题 - Java SE 8 评估测试题目

IKM 测试题 - Java SE 8 评估测试题目

licheng11y的博客 1314

中介者模式 详解

定义是一个行为设计模式,它允许我们公开一个统一的接口,系统的不同部分可以通过该接口进行通信,而不需要显示的相互作用;适用场景 如果一个系统的各个组件之间看起来有太多的直接关系,这个时候则需要一个中心控制点,以便各个组件可以通过这个中心控制点进行通信; 该模式促进松散耦合的方式是:确保组件的交互是通过这个中心点来进行处理的,而不是通过显示的引用彼此; 角色 抽象中介者(AbstractMediato

GeorgeWang 4355

从零到一:构建嵌入式Arm-Linux的Qt MQTT通信框架全指南

本文详细指导如何在嵌入式Arm-Linux平台上从零构建Qt MQTT通信框架,涵盖交叉编译、环境配置、依赖库管理及性能优化。重点针对32位Arm架构,提供完整的工具链配置、编译步骤和实战部署方案,适用于物联网和工业控制等场景。

w8x9y0z1的博客 1000

从SIGGRAPH审稿人视角看:什么样的TOG论文更容易被接收?

本文从SIGGRAPH审稿人视角深入解析TOG论文的审稿标准与投稿策略,揭示如何提升论文接收概率。重点探讨创新性、技术深度、实验验证等核心评分维度,并提供写作技巧与审稿意见应对策略,帮助研究者优化ACM Transactions on Graphics投稿质量。

weixin_33721344的博客 108

设计模式之中介者模式---Mediator Pattern

模式的定义中介者模式定义如下:Define an object that encapsulates how a set of objects interact.Mediator promotes loose coupling by keeping objects from referring to each other explicitly,and it lets you vary their in

hfreeman2008的专栏 5290

基于YOLOv8改进的目标检测算法研究及毕设实现全流程指南

在PyTorch中定义改进后的YOLOv8模型。首先,导入相关的库和模块,然后定义骨干网络、颈部和头部的结构。# 这里定义骨干网络的结构,例如使用改进的CSP结构# 卷积层、批归一化层、激活函数等# 更多的卷积层、批归一化层、激活函数等# 其他层...# 其他层的输出...然后,定义颈部和头部的结构,类似地,将注意力机制和特征增强方法集成到模型中。本毕设以YOLOv8为基础,通过集成注意力机制、应用特征增强技术等方法,改进了目标检测算法。

m0_64661770的博客 323

MVP那些事儿(5) 中介者与MVP

这本书的实际价值也许还值得商榷。毕竟它并没有提出任何前所未有的算法或者编程技术。它也没能给出任何严格的系统设计方法或者新的设计开发理论——它只是对现有设计成果的一种审视。大家当然可以将其视为一套不错的教程,但它显然无法为经验丰富的面向对象设计人员带来多少帮助。 摘自GoF《设计模式:可复用面向对象软件的基础》的最后一章 目录 MVP那些事儿(1)……用场景说话 MVP那些事儿(2)……MVC架构初...

weixin_33737774的博客 251

扩展卡尔曼滤波 (EKF, Extended Kalman Filter) 算法详解及案例分析

扩展卡尔曼滤波是一种用于估计非线性动态系统状态的递归算法。其目标是通过结合非线性系统模型和观测数据,估计系统的最优状态。

闲人编程的博客 2385

CANbus收发器ADM3053BRWZ-REEL7应用原理图设计

ADM3053 在 CAN 协议控制器与物理层总线之间创建一个 完全隔离的接口。该器件具有限流和热关断特性,可防止输出短路。额定温 度范围为工业温度范围,提供 20 引脚、宽体 SOIC 封装。该器件采用 5 V 单电源供电, 提供完全隔离的 CAN 解决方案。ADM3053 是一款隔离式控制器区域网络 (CAN) 物理层收 发器,集成隔离 DC/DC 转换器,符合 ISO 11898 标准。该器件采用 ADI 公司的。Coupler® 技术,将双通道隔离器、 CAN 收发器和 ADI 公司的。

zhusl6688的博客 1239

【中介者模式(Mediator)】使用Java实现中介者模式

Java使用中介者模式减少Controller和Service耦合

weixin_43139800的博客 994

从零开始:使用Verilog在FPGA上实现8051微控制器的完整指南

8051微控制器是一种8位微控制器,由Intel在1980年代初推出。它包括一个CPU、一些RAM和ROM、I/O端口、定时器和串行通信接口。由于其简单的架构和强大的功能,8051已经成为了嵌入式系统设计的首选。FPGA是一种集成电路,设计师可以按照自己的需求进行编程。与传统的ASIC(应用特定集成电路)相比,FPGA提供了更高的灵活性,允许在硬件级别进行快速原型设计和迭代。这里,我们定义了一些基本的输入/输出端口,如时钟clk、复位reset、数据输入/输出和地址输入/输出。

qq_38334677的博客 1332

17-中介者(Mediator)

这里写目录标题1. 定义2. 适用场景3. 要点总结4. Demo 1. 定义 2. 适用场景 3. 要点总结 4. Demo

HJ的技术博客 333

锂电池充电器电路设计 里面有电路

锂电池充电器电路设计 里面有电路 3.7V升压到5V电路设计。

pscad IEEE标准系统搭建说明

pscad IEEE标准系统搭建说明,包含典型的IEEE 9节点、14节点、30节点、39节点和118节点系统。内含标准测试系统的原始数据和潮流结果。

Mediator 中介者模式

public abstract class Element { protected Mediator mediator; public Element( Mediator mediator ) { this.mediator = mediator; this.mediat...

weixin_30690833的博客 75

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

DesignPatternsPHP:Mediator中介者模式协调对象的终极指南

在软件开发中,对象间的复杂交互常常导致代码耦合度过高、维护困难。**Mediator中介者模式**作为一种行为型设计模式,通过引入中介者对象来封装多个对象之间的交互逻辑,显著降低系统复杂度。本文将通过DesignPatternsPHP项目中的实战案例,带你快速掌握这一设计模式的核心原理与应用技巧。 ## 🤔 为什么需要中介者模式? 当系统中存在多个对象需要相互通信时,传统的直接交互方式会形成

gitblog_00073的博客 772

中介者模式(Mediator)

一、实验目的: 1) 掌握中介者模式(Mediator)的特点 2) 分析具体问题,使用中介者模式进行设计。 二、实验环境: Eclipse 三、实验内容: 某软件公司要开发一套CRM系统,其中包含一个客户信息管理模块,所设计的“客户信息管理窗口”界面效果图如下图所示: 用JAVA语言实现(C#控制台应用程序实现)该模式。绘制该模式的UML图。 【模式UML图】 ...

sinat_40959511的博客 453

中介者(Mediator)模式

中介模式C++实现

qq_51247411的博客 298

设计模式: Mediator 中介者模式

设计模式: Mediator 中介者模式 文章目录设计模式: Mediator 中介者模式简介参考完整示例代码正文场景模式结构代码实现:文字对话框Widgets 窗口组件DialogDirector 对话框导向器测试结语模式特点 简介 目的 创建型 结构型 行为型 类 Factory Method 工厂方法 Adapter 适配器 Interpreter 解释器Template Method 模版方法 对象 Abstract Factory 抽象工厂Builder 生成器Prototyp

超悠閒的博客 300

C++设计模式-Mediator中介者模式

Mediator中介者模式 作用:用一个中介对象来封装一系列的对象交互。中介者使各对象不需要显式地相互引用,从而使其耦合松散,而且可以独立地改变它们之间的交互。 UML如下: Colleage抽象同事类,而ConcreteColleage是具体同时类,每个具体同事只知道自己的行为,而不了解其他同事类的情况,但它们却都认识中介者对象,Mediator是抽象中介者,定义了同事对象

u011643157的专栏 347

设计模式——中介者模式_Mediator Pattern

中介者模式: Define an object that encapsulates how a set of objects interact. Mediator promotes loose coupling by keeping objects from referring to each other explicity, and it lets you vary their interac

497

java mediator_Java 实现中介者(Mediator)模式

类图public interface IMediator {public void createMediator();public void work();}/*** 中介、调节实际上需要交互的两个元素,让其松耦合* @author stone**/public class Mediator implements IMediator {private XmlCode xmlCode;private...

weixin_39665060的博客 199

设计模式之Mediator(中介者)

Mediator中介者模式定义:用一个中介对象来封装一系列关于对象交互行为.为何使用Mediator?各个对象之间的交互操作非常多;每个对象的行为操作都依赖彼此对方,修改一个对象的行为,同时会涉及到修改很多其他对象的行为,如果使用Mediator模式,可以使各个对象间的耦合松散,只需关心和 Mediator的关系,使多对多的关系变成了一对多的关系,可以降低系统的复杂性,提高可修改扩展性.如何使用?

旅行人生 1016

17Mediator(中介者)模式

技术交流QQ群:1027579432,欢迎你的加入! 1.Mediator(中介者)模式的动机 在软件构建过程中,经常会出现多个对象互相交互的情况,对象之间常常会维持一种复杂的引用关系。如果遇到一些需求的更改,这种直接的引用关系将面临着不断的变化。 在这种情况下,我们可以使用一个中介对象来管理对象间的关联关系,避免相互交互的对象之间的紧耦合引用关系,从而更好地抵御变化。 2.Mediator(...

CurryCoder的个人博客 359
上一篇: 通讯兵(Chain of Responsibility)
下一篇: 欢迎精灵
yarshray
博客等级 码龄25年 72粉丝 62原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值