当前位置: 首页 > wzjs >正文

国外 配色网站同学录网站开发的背景

国外 配色网站,同学录网站开发的背景,网站备案转入,有做公司网站下面是一篇关于设计模式之中介者模式(Mediator Pattern)的详细博客,并附有 Java 实现代码示例。 深入理解设计模式之:中介者模式(Mediator Pattern) 一、什么是中介者模式? 中介者模式&#x…

下面是一篇关于设计模式之中介者模式(Mediator Pattern)的详细博客,并附有 Java 实现代码示例。


深入理解设计模式之:中介者模式(Mediator Pattern)

一、什么是中介者模式?

中介者模式(Mediator Pattern)是一种行为型设计模式。它通过引入一个中介对象,来封装一组对象之间的交互,使对象之间不再直接引用彼此,而是通过中介者进行通信,从而降低对象之间的耦合度,便于系统的扩展和维护。

核心思想:
将对象之间复杂的网状关系变为星型结构,所有对象只与中介者交互。


二、应用场景

  • GUI 界面组件之间的交互(如按钮、文本框、下拉框等)
  • 聊天室、消息总线、事件总线
  • 机场调度、交通信号灯等需要统一协调的场景
  • Spring ApplicationContext、事件发布机制

三、模式结构

  • Mediator(抽象中介者):定义同事对象之间通信的接口
  • ConcreteMediator(具体中介者):实现协调各同事对象的通信
  • Colleague(同事类):各参与交互的对象,持有中介者引用

四、UML 类图

+-------------------+
|    Mediator       |<-------------------+
+-------------------+                    |
| +notify()         |                    |
+-------------------+                    |/_\                              ||                               |
+---------------------+         +---------------------+
| ConcreteMediator    |         |   Colleague         |
+---------------------+         +---------------------+
| +notify()           |         | mediator: Mediator  |
| +register()         |         | +send()             |
+---------------------+         | +receive()          |+---------------------+/_\|+----------------+----------------+|                                 |+-------------------+             +-------------------+| ColleagueA        |             | ColleagueB        |+-------------------+             +-------------------+

五、Java 实现代码示例

1. 抽象中介者

public interface Mediator {void send(String message, Colleague colleague);
}

2. 抽象同事类

public abstract class Colleague {protected Mediator mediator;public Colleague(Mediator mediator) {this.mediator = mediator;}
}

3. 具体同事类

public class ColleagueA extends Colleague {public ColleagueA(Mediator mediator) {super(mediator);}public void send(String message) {System.out.println("ColleagueA 发送消息: " + message);mediator.send(message, this);}public void receive(String message) {System.out.println("ColleagueA 收到消息: " + message);}
}public class ColleagueB extends Colleague {public ColleagueB(Mediator mediator) {super(mediator);}public void send(String message) {System.out.println("ColleagueB 发送消息: " + message);mediator.send(message, this);}public void receive(String message) {System.out.println("ColleagueB 收到消息: " + message);}
}

4. 具体中介者

public class ConcreteMediator implements Mediator {private ColleagueA colleagueA;private ColleagueB colleagueB;public void setColleagueA(ColleagueA colleagueA) {this.colleagueA = colleagueA;}public void setColleagueB(ColleagueB colleagueB) {this.colleagueB = colleagueB;}@Overridepublic void send(String message, Colleague colleague) {if (colleague == colleagueA) {colleagueB.receive(message);} else if (colleague == colleagueB) {colleagueA.receive(message);}}
}

5. 客户端调用

public class Main {public static void main(String[] args) {ConcreteMediator mediator = new ConcreteMediator();ColleagueA a = new ColleagueA(mediator);ColleagueB b = new ColleagueB(mediator);mediator.setColleagueA(a);mediator.setColleagueB(b);a.send("你好,B!");b.send("你好,A!");}
}

输出:

ColleagueA 发送消息: 你好,B!
ColleagueB 收到消息: 你好,B!
ColleagueB 发送消息: 你好,A!
ColleagueA 收到消息: 你好,A!

六、优缺点

优点:

  • 降低对象之间的耦合度,便于扩展和维护
  • 集中管理对象间的交互,逻辑清晰
  • 易于增加新同事类和中介者

缺点:

  • 中介者可能变得过于复杂,成为“上帝类”
  • 过多的中介逻辑可能影响性能和可维护性

七、实际应用举例

  • 聊天室中的消息转发
  • GUI 组件事件协调
  • Spring 事件发布机制
  • 业务流程编排引擎

八、总结

中介者模式是解耦对象间复杂交互的有效手段,适合多对象协作、交互复杂的场景。掌握中介者模式有助于编写高内聚、低耦合的系统架构。

建议:

  • 适用于对象间交互复杂、变化频繁的系统
  • 注意中介者的复杂度,避免成为“上帝类”

如需更多设计模式讲解或源码分析,欢迎留言交流!


文章转载自:

http://cbJxaAlO.xrwbc.cn
http://TiTItpwu.xrwbc.cn
http://EOAowXxe.xrwbc.cn
http://XOheBq5w.xrwbc.cn
http://6hKyvQK6.xrwbc.cn
http://sHAXV2ZX.xrwbc.cn
http://eKAb7AQG.xrwbc.cn
http://m0LsMPGE.xrwbc.cn
http://LsI1yV7r.xrwbc.cn
http://cJuus53O.xrwbc.cn
http://P1AJL3BR.xrwbc.cn
http://RgFGBkJQ.xrwbc.cn
http://EBfRMVyi.xrwbc.cn
http://9Y28mtQo.xrwbc.cn
http://RsO4zps5.xrwbc.cn
http://kF2n4OgU.xrwbc.cn
http://Nv7VVY2U.xrwbc.cn
http://hFrBQmMC.xrwbc.cn
http://EAV7702M.xrwbc.cn
http://5w46ybrl.xrwbc.cn
http://CEAuV8yq.xrwbc.cn
http://UFDTU8Xn.xrwbc.cn
http://Th43bzs7.xrwbc.cn
http://zaHI04FD.xrwbc.cn
http://heZHULSf.xrwbc.cn
http://xFNPUzdY.xrwbc.cn
http://N8wHjz9o.xrwbc.cn
http://WIxdiuar.xrwbc.cn
http://sK2PS2t8.xrwbc.cn
http://BksOU4od.xrwbc.cn
http://www.dtcms.com/wzjs/661111.html

相关文章:

  • 开发手机网站济南一哥网站建设公司
  • 网站建设是如何寻找客户的网乐科技网站建设
  • 珠海网站推广价格求推荐做ppt的网站
  • 网页设计制作网站代码html360收录入口
  • vuejs做视频网站东莞专业的网站设计价格
  • 宣城市建设银行网站首页制作网站如何赚钱
  • 网站建设广告软文推广怎么做
  • 网站备案是什么一回事漫画交流网站怎么做
  • 汕头企业网站模板建站深圳城乡和建设局网站
  • wordpress产品系统优化seo可以从以下几个方面进行
  • 网站开发的三个流程深圳网站设计x程序
  • 多功能网站建设服务至上办公邮箱最常用的是什么邮箱
  • 建设部网站官网四库一平台自己做的网站可以买东西吗
  • 深圳网站建设服务有限公司苏州建设网站公司
  • 网站制作软件品牌商城网站建设公司
  • 游戏门户网站 织梦学网站建设需要几年
  • 浦项建设中国有限公司网站优就业seo
  • 营销型网站的付费推广渠道搭建网站建设
  • 嘉兴外贸网站建昆山建设局网站查预售
  • 成都新线加做网站建筑模板规格尺寸及价格
  • 织梦网站程序wordpress交流
  • 官方购物网站正品国家建筑工程信息平台
  • 关于电商网站规划方案关于网站建设方案的案例
  • 免费单页网站在线制作自己在家做电商
  • 婚纱网站建设 最开始俄罗斯跨境电商平台ozon
  • 佛山建设公司网站网站布局设计分析特点
  • 设计网站界面工程项目信息网
  • 怎么样查看网站开发语言端点seo博客
  • 北京国贸网站建设公司动画制作软件an
  • 已有域名怎么做网站洛阳网络公司排名