网站手机版二维码怎么做,wordpress 128m内存,软文300字案例,深圳住房和建设局网站轮候大厅说到这个模式就有趣了#xff0c;不知道大家在生活中喷到过中介没#xff1f;其实中介这个词吧#xff0c;我也说不上好还是坏#xff0c;有时候他可以帮助人们更快的达到某个目的#xff0c;但有的时候吧#xff0c;这个有贼坑人#xff0c;相信网络上有各种被中介坑的…说到这个模式就有趣了不知道大家在生活中喷到过中介没其实中介这个词吧我也说不上好还是坏有时候他可以帮助人们更快的达到某个目的但有的时候吧这个有贼坑人相信网络上有各种被中介坑的案例但是今天我们讲的这个设计模式就是围绕中介来讲的但是他并不是为了坑人的在本文中的中介者模式主要是为了满足达到某个目的而进行的。
中介者模式
它提供了一种集中式的方式来管理复杂对象之间的通信和交互。中介者模式通过引入一个中介者对象将对象之间的通信转化为与中介者的通信从而减少对象间的直接耦合。
中介者模式的核心组成部分包括 中介者Mediator定义了对象之间通信的接口和规则可以通过中介者来调度和协调对象之间的交互。 具体中介者Concrete Mediator实现了中介者接口负责实际的对象协调和通信过程。 同事类Colleague定义了与其他同事类通信的接口可以通过中介者来发送和接收消息。 具体同事类Concrete Colleague实现了同事类的接口负责具体的行为和交互。 中介者模式的优点包括
减少了对象间的直接耦合通过引入中介者对象之间的通信不再直接依赖于彼此而是通过中介者来进行。**促进了对象的松耦合**对象只需要与中介者进行通信而不需要了解其他对象的细节从而降低了对象之间的依赖。**简化了对象之间的交互**中介者集中了对象间的交互逻辑使得交互过程变得简单和可管理。 public class MediatorPatternDemo {public static void main(String[] args) {//同事对象User robert new User(Robert);User john new User(John);//robert向john打招呼的信息通过 聊天室 ChatRoom 发出.robert.sendMessage(Hi! John!);john.sendMessage(Hello! Robert!);}
}/*** 具体中介者Concrete Mediator角色*/
public class ChatRoom {//发送信息public static void showMessage(User user, String message){System.out.println(new Date().toString() [ user.getName() ] : message);}
}/*** 具体同事类Concrete Colleague角色是抽象同事类的实现者当需要与其他同事对象交互时由中介者对象负责后续的交互。** 当User之间要互相传递消息时由 ChatRoom这个中介者来完成.*/
public class User {private String name;public String getName() {return name;}public void setName(String name) {this.name name;}public User(String name){this.name name;}//****发信息public void sendMessage(String message){//调用中介者来发送.ChatRoom.showMessage(this, message);}
}其缺点在于 中介者的责任可能会变得复杂随着对象之间的交互规则增加中介者可能变得复杂且难以维护。 可能导致系统中心化过度使用中介者模式可能导致系统中心化使得中介者成为系统的瓶颈。
中介者模式不应该在职责混乱的时候使用否则这样会导致系统更加混乱。