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

阿里云建站公司靠谱吗海会网络做的网站怎么做优化

阿里云建站公司靠谱吗,海会网络做的网站怎么做优化,编程 网站建设,怎么删除WordPress外链概念 中介者模式是一种行为型设计模式,通过引入一个中介对象来封装一系列对象之间的交互,从而减少对象间的直接耦合。对象间不再直接通信,而是通过中介者进行协调,将多对多的复杂关系转化为一对多的集中管理。 作用 1.解耦对象…

概念

中介者模式是一种行为型设计模式,通过引入一个中介对象来封装一系列对象之间的交互,从而减少对象间的直接耦合。对象间不再直接通信,而是通过中介者进行协调,将多对多的复杂关系转化为一对多的集中管理。

作用

1.解耦对象间的直接依赖,使系统更松耦合。

2.集中控制交互逻辑,便于维护和扩展。

3.简化对象职责,每个对象只需关注自身行为,无需管理与其他对象的交互。

场景

1.对象间存在复杂的网状引用关系,导致系统难以维护。

2.多个对象需要协作,但直接依赖会导致代码冗余或难以复用。

3.需要统一管理对象间的交互逻辑,例如聊天系统、GUI组件交互、任务调度等。

示例(聊天室)

1.定义中介者接口:声明消息转发方法。

// 中介者接口
interface ChatMediator {void sendMessage(String msg, User user);void addUser(User user);
}

2.具体中介者类:实现消息分发逻辑。

// 具体中介者(聊天室)
class ChatRoom implements ChatMediator {private List<User> users = new ArrayList<>();@Overridepublic void sendMessage(String msg, User sender) {for (User user : users) {if (user != sender) { // 不发送给自己user.receive(msg);}}}@Overridepublic void addUser(User user) {users.add(user);}
}

3.同事类(Colleague):持有中介者引用,通过中介者通信。

// 同事类(用户)
abstract class User {protected ChatMediator mediator;protected String name;public User(ChatMediator mediator, String name) {this.mediator = mediator;this.name = name;}public abstract void send(String msg);public abstract void receive(String msg);
}
// 具体用户实现
class ChatUser extends User {public ChatUser(ChatMediator mediator, String name) {super(mediator, name);mediator.addUser(this); // 注册到中介者}@Overridepublic void send(String msg) {System.out.println(name + " 发送消息: " + msg);mediator.sendMessage(msg, this); // 通过中介者发送}@Overridepublic void receive(String msg) {System.out.println(name + " 收到消息: " + msg);}
}

4.使用示例

// 使用示例
public class MediatorDemo {public static void main(String[] args) {ChatMediator chatRoom = new ChatRoom();User alice = new ChatUser(chatRoom, "Alice");User bob = new ChatUser(chatRoom, "Bob");alice.send("Hi, Bob!"); // Alice 发送消息,Bob 接收}
}

控制台输出:

Alice 发送消息: Hi, Bob!
Bob 收到消息: Hi, Bob!

优缺点

优点

1.降低耦合:对象间不直接依赖,只需依赖中介者。

2.简化维护:交互逻辑集中在中介者,修改不影响同事类。

3.扩展性好:新增同事类只需修改中介者,无需改动其他类。

缺点

1.中介者可能过于复杂:若交互逻辑过多,中介者会膨胀为“上帝类”。

2.性能问题:所有通信经过中介者,可能成为系统瓶颈。

不使用中介者模式的实现

1.用户类

class User {private String name;private List<User> users = new ArrayList<>(); // 直接持有其他用户的引用public User(String name) {this.name = name;}public void addContact(User user) {users.add(user);}public void sendDirect(String msg) {System.out.println(name + " 发送消息: " + msg);for (User user : users) {user.receiveDirect(msg);}}public void receiveDirect(String msg) {System.out.println(name + " 收到消息: " + msg);}
}

2.使用示例

// 使用示例
public class WithoutMediatorDemo {public static void main(String[] args) {User alice = new User("Alice");User bob = new User("Bob");// 必须显式建立直接依赖alice.addContact(bob);bob.addContact(alice);alice.sendDirect("Hi, Bob!");}
}

控制台输出:

Alice 发送消息: Hi, Bob!
Bob 收到消息: Hi, Bob!

缺点

1.高耦合:每个用户需维护其他用户的引用,新增用户需修改所有相关代码。

2.难以扩展:添加新用户时,必须手动更新所有相关对象的依赖。

3.重复代码:交互逻辑分散在各对象中,导致冗余。

4.维护困难:对象间关系复杂时,修改可能引发连锁错误。

总结

中介者模式通过集中管理对象交互解决了复杂依赖问题,适用于多对象协作场景。不使用时,对象间直接依赖会导致系统僵化、难以维护。选择中介者模式的权衡点在于中介者的复杂度和系统扩展需求。

http://www.dtcms.com/wzjs/433027.html

相关文章:

  • 可以做烟的网站吗网络营销的主要方法
  • 南沙滩做网站公司seo网站优化公司
  • 做一个app大概要多少钱关键词优化快速
  • 2019长沙企业网站建设优惠站长之家域名查询鹿少女
  • wordpress 统一身份认证如何提升网站seo排名
  • 通州区网站快速排名方案谷歌广告优化师
  • 网站建设中的图片搜索引擎
  • 网站建设流量是怎么回事传播易广告投放平台
  • 建外贸网站需要多少钱关键词seo排名优化软件
  • 做外贸的数据网站有哪些网络优化的流程
  • vs做网站怎么上太原百度快速优化
  • 互联网公司排名2022销售额网站优化推广排名
  • 电脑网站制作教程营销官网
  • 石做视频网站需要牌照网页怎么做
  • 快手做任务网站怎么做外链
  • 网站建设网页设计谷歌三件套
  • 网站留言板样式百度推广登录入口官网
  • 做图片推广的网站百度网页高级搜索
  • 抖音推广有几种方式廊坊推广seo霸屏
  • 品牌服务推广重庆seo顾问服务
  • 滑县做网站小说推广接单平台
  • 深圳全网推广公司seo快速排名软件网址
  • 网站测试重点是哪几个部分木卢seo教程
  • 湛江免费网站建站模板国外市场网站推广公司
  • net的电商网站建设html网页制作
  • 郑州东区网站建设百度云网盘搜索引擎入口
  • 金乡县住房和城乡建设局网站百度seo2022
  • 政府网站建设专题培训打开浏览器直接进入网站
  • 网站模板制作教程视频推广服务商
  • 帮人做网站一定要先收费bing搜索国内版