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

百度站长工具seo查询百度怎么注册自己的网站

百度站长工具seo查询,百度怎么注册自己的网站,自动推送代码wordpress教程,网站导航条代码中介者模式(Mediator Pattern) 中介者模式是一种行为型设计模式,旨在通过封装一系列对象之间的交互方式,使其能够独立地进行通信。 中介者模式的核心思想是将对象之间的直接通信改为通过一个中介者对象来进行间接通信,…

中介者模式(Mediator Pattern)

中介者模式是一种行为型设计模式,旨在通过封装一系列对象之间的交互方式,使其能够独立地进行通信。
中介者模式的核心思想是将对象之间的直接通信改为通过一个中介者对象来进行间接通信,从而减少对象之间的耦合度。
在中介者模式中,中介者(Mediator)对象充当了协调者的角色,它负责控制和管理多个 colleague 对象之间的通信过程。
colleague 对象则相互依赖于中介者对象,通过中介者来实现彼此之间的通信,而不是直接交互。

以下是中介者模式的基本组成部分:
Mediator(中介者):定义中介者接口,通常包含用于协调 colleague 对象之间通信的方法。
ConcreteMediator(具体中介者):实现中介者接口,具体实现协调 colleague 对象之间通信的逻辑。
Colleague(同事):定义同事对象的接口,通常包含了被中介者调用的方法。
ConcreteColleague(具体同事):实现同事接口,与其他同事对象进行通信,并在需要时与中介者对象进行交互。
中介者模式的优点包括:
减少了对象间的直接耦合,增加了可维护性和灵活性。
通过集中管理对象间的通信,简化了系统的设计和实现。
可以更方便地扩展和修改系统,增加新的 colleague 对象或修改中介者逻辑。

然而,中介者模式也存在一些缺点:
中介者对象可能会变得复杂,并承担过多的责任。
中介者模式在一定程度上违背了单一职责原则,因为它需要处理大量 colleague 对象之间的通信逻辑。
中介者模式适用于同事之间存在复杂的关联关系,且彼此之间的通信行为难以直接管理和维护的情况。
它可以帮助我们在系统中构建松耦合的对象间交互机制,提高系统的可拓展性和可维护性。

提供demo版代码更容易理解

/*** @author zhou*  中介者接口*/
interface Mediator {void sendMessage(String message, Colleague colleague);
}/*** @author zhou*  具体中介者类*/
class ConcreteMediator implements Mediator {private Colleague colleague1;private Colleague colleague2;public void setColleague1(Colleague colleague1) {this.colleague1 = colleague1;}public void setColleague2(Colleague colleague2) {this.colleague2 = colleague2;}@Overridepublic void sendMessage(String message, Colleague colleague) {if (colleague == colleague1) {colleague2.receiveMessage(message);} else if (colleague == colleague2) {colleague1.receiveMessage(message);}}
}/*** @author zhou*  抽象同事类*/
abstract class Colleague {protected Mediator mediator;public Colleague(Mediator mediator) {this.mediator = mediator;}public abstract void sendMessage(String message);public abstract void receiveMessage(String message);
}/*** @author zhou*  具体同时类1*/
class ConcreteColleague1 extends Colleague {public ConcreteColleague1(Mediator mediator) {super(mediator);}@Overridepublic void sendMessage(String message) {mediator.sendMessage(message, this);}@Overridepublic void receiveMessage(String message) {System.out.println("ConcreteColleague1 received message: " + message);}
}/*** @author zhou*  具体同时类2*/
class ConcreteColleague2 extends Colleague {public ConcreteColleague2(Mediator mediator) {super(mediator);}@Overridepublic void sendMessage(String message) {mediator.sendMessage(message, this);}@Overridepublic void receiveMessage(String message) {System.out.println("ConcreteColleague2 received message: " + message);}
}/*** @author zhou*  客户端实现*/
public class MediatorPatternDemo {public static void main(String[] args) {ConcreteMediator mediator = new ConcreteMediator();ConcreteColleague1 colleague1 = new ConcreteColleague1(mediator);ConcreteColleague2 colleague2 = new ConcreteColleague2(mediator);mediator.setColleague1(colleague1);mediator.setColleague2(colleague2);colleague1.sendMessage("Hello, colleague2!");colleague2.sendMessage("Hi, colleague1!");}
}

中介者(Mediator)接口定义了消息的发送方法sendMessage,具体中介者类(ConcreteMediator)实现了该接口,
并通过引入两个具体同事类(ConcreteColleague1和ConcreteColleague2)来协调他们之间的信息交互。
每个具体同事类都持有中介者对象,并实现了消息的发送(sendMessage)和接收(receiveMessage)方法。

http://www.dinnco.com/news/68099.html

相关文章:

  • 做酷炫网站能卖钱吗搜一搜搜索
  • 手机网站用什么软件做的好怎么开一个网站平台
  • 苏州做视频网站广告公司宁波seo网络推广咨询热线
  • 网站备案表企点qq
  • 做动态网站用哪个程序软件比较简单软文
  • 旅游管理网站业务模块整合营销传播的六种方法
  • 浙江建设集团网站建立免费网站
  • 有没有可以做司考真题的网站长沙seo排名外包
  • 网站建设属于哪个分类编码百度教育app
  • 佛山企业网站建设多少钱快点tv下载安装
  • 门户网站如何建设方案怎么制作网址
  • 广州新际网站建设站长工具综合查询官网
  • wordpress支付下载插件整站优化包年
  • 阜宁做网站的价格爱站网关键词挖掘
  • asp网站安全如何做网络推广的基本方法有哪些
  • 猫咖网页设计教程seo优化工作内容
  • 网站百度地图生成器百度搜索引擎工作原理
  • 北京互联网公司网站建设百度推广怎么添加关键词
  • 微商推广怎么网站排名seo
  • 做直播教程的网站有哪些百度推广竞价排名技巧
  • 做哪些网站比较好的阿里指数app下载
  • 深圳罗湖企业网站建设报价东莞seo推广公司
  • 制作公司网站 价格seo根据什么具体优化
  • 商务型网站模板网站搭建外贸
  • 惠州城乡和住房建设局网站seo工程师招聘
  • 赣州网站推广石家庄网站seo
  • 洛阳建站网络营销策划是什么
  • 企业网站经典案例seo自媒体培训
  • 贵港网站建设动态it培训机构培训费用
  • 南京响应式网站设计互联网公司排名100强