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

asp技术网站开发案例功能多的免费网站建设

asp技术网站开发案例,功能多的免费网站建设,网站底部固定广告代码,河南建设工程信息网官网梁金奇Java 中介者模式(Mediator Pattern)详解 🧠 什么是中介者模式? 中介者模式是一种行为型设计模式,它通过定义一个中介者对象来封装一组对象之间的交互。中介者使得各个对象不需要显式地知道彼此之间的关系&#xff0c…

Java 中介者模式(Mediator Pattern)详解

🧠 什么是中介者模式?

中介者模式是一种行为型设计模式,它通过定义一个中介者对象来封装一组对象之间的交互。中介者使得各个对象不需要显式地知道彼此之间的关系,从而减少了对象之间的耦合。对象与对象之间通过中介者进行通信,避免了直接交互。

中介者模式常用于多个对象之间存在复杂的关系和交互时,能够减少对象之间的依赖关系并提高系统的灵活性。


🎯 使用场景

  • 当多个对象之间的交互复杂,直接通信会导致系统的复杂性增加时。
  • 需要避免类之间过多的耦合关系。
  • 系统中需要有一个集中式的对象来管理和协调各个对象的交互。

🏗️ 模式结构

  • Mediator(抽象中介者):定义一个接口,用来与不同的对象进行交互。
  • ConcreteMediator(具体中介者):实现中介者接口,协调不同对象之间的交互。
  • Colleague(同事类):每个同事类都与中介者对象交互。
  • ConcreteColleague(具体同事类):实现与中介者的交互方法,处理具体业务逻辑。

✅ 示例:聊天室中介者

抽象中介者类

public interface ChatRoomMediator {void sendMessage(String message, User user);void addUser(User user);
}

具体中介者类

import java.util.ArrayList;
import java.util.List;public class ChatRoom implements ChatRoomMediator {private List<User> users;public ChatRoom() {this.users = new ArrayList<>();}@Overridepublic void sendMessage(String message, User user) {for (User u : users) {// 排除发送消息的用户if (u != user) {u.receive(message);}}}@Overridepublic void addUser(User user) {this.users.add(user);}
}

同事类(用户)

public abstract class User {protected ChatRoomMediator mediator;protected String name;public User(ChatRoomMediator mediator, String name) {this.mediator = mediator;this.name = name;}public abstract void sendMessage(String message);public abstract void receive(String message);
}

具体同事类(用户实现)

public class ConcreteUser extends User {public ConcreteUser(ChatRoomMediator mediator, String name) {super(mediator, name);}@Overridepublic void sendMessage(String message) {System.out.println(this.name + " sending message: " + message);mediator.sendMessage(message, this);}@Overridepublic void receive(String message) {System.out.println(this.name + " received message: " + message);}
}

客户端

public class Client {public static void main(String[] args) {ChatRoom chatRoom = new ChatRoom();User user1 = new ConcreteUser(chatRoom, "Alice");User user2 = new ConcreteUser(chatRoom, "Bob");User user3 = new ConcreteUser(chatRoom, "Charlie");chatRoom.addUser(user1);chatRoom.addUser(user2);chatRoom.addUser(user3);user1.sendMessage("Hi Bob!");user2.sendMessage("Hello Alice!");user3.sendMessage("Hey everyone!");}
}

✅ 优点

  • 减少了类之间的耦合:通过中介者对象来协调交互,避免了对象直接通信。
  • 集中式控制:所有的交互通过中介者控制,简化了系统的复杂度。
  • 提高灵活性:如果要增加新的交互,只需要修改中介者,不需要改变具体的同事类。

⚠️ 缺点

  • 中介者可能成为“上帝对象”:中介者对象可能会变得非常庞大,包含大量的逻辑,导致代码不易维护。
  • 增加系统的复杂性:对于简单的交互,使用中介者模式可能会引入不必要的复杂性。

🧩 使用建议

中介者模式适用于处理对象之间复杂交互的场景,尤其是当多个对象之间的关系密切并且频繁交互时。通过中介者模式可以有效地减少类之间的直接耦合,增加系统的可维护性和扩展性。

典型应用场景包括:

  • GUI系统中组件之间的交互;
  • 多对象间的协作和消息传递;
  • 复杂的工作流或流程管理。
http://www.dtcms.com/wzjs/798340.html

相关文章:

  • 怎样做汽车网站建设大连城市建设集团网站
  • 奈曼旗建设局网站网站建设与管理案例教程第三版课后答案
  • 网站开发页面适应高度厦门室内设计公司排名
  • 网站除了做流量还需要什么软件网站设计公司案例
  • 软文推广网站企业网站定制案例
  • 中国建设教育协会网站查询h5app
  • 深圳网站设计公司让您放心省心上海专业做网站公
  • 新吴区建设局网站网络推广的方式
  • 推广展示类网站三门县正规营销型网站建设地址
  • 网站头部怎么做网站开发的前后台的步骤分别为
  • 加强网站队伍建设wordpress中文免费主题
  • 51购物网官方网站网站开发毕业设计开题报告
  • 网站建设的需求方案重庆市证书查询官网
  • 徐州企业网站建设企业宣传网站多大主机
  • 中国工商银行官方网站登录做企业网站有什么用
  • 自己做博客网站成都网络营销网站
  • 小型微利企业所得税优惠政策网站百度关键词优化
  • 做网站和易语言网站开发流程图解释含义
  • win10建设本地网站建筑工程承包平台
  • 网站维护 关站 seo株洲新站seo
  • 来宾北京网站建设网站速度优化方案
  • 青岛网站建设公司wordpress中文留言板
  • 网站推广的策略重庆公司社保缴费比例
  • 摄影网站制作设计php网站开发数据列表排重
  • 免费网站现在是怎么了城市建设网
  • 建设像京东一样的网站WordPress换主题图片不适应
  • 怎样免费建企业网站免费网站建设空间
  • 如何让一个网站排名掉贵州住房和城乡建设部网站
  • 影视公司网站模板谷歌账号
  • 木门行业网站该怎么做手机app安装下载