商城型网站开发网站建设,无法定位wordpress内容目录(wp-content).,吉林省城市建设学校网站,怎么做论坛网站代表模式#xff08;Mediator Pattern#xff09;是一种行为型设计模式#xff0c;它通过封装一组对象之间的交互方式#xff0c;使得这些对象之间的通信变得松散耦合#xff0c;从而降低了对象之间的直接依赖关系。代表模式通过引入一个中介者#xff08;Mediator#…代表模式Mediator Pattern是一种行为型设计模式它通过封装一组对象之间的交互方式使得这些对象之间的通信变得松散耦合从而降低了对象之间的直接依赖关系。代表模式通过引入一个中介者Mediator对象将对象之间的通信集中处理从而减少了对象之间的相互依赖使得系统更加灵活和可扩展。
在代表模式中中介者对象充当了对象之间的调度者和协调者的角色它封装了对象之间的通信逻辑负责接收和发送消息并将消息传递给相关的对象。对象之间不再直接相互引用而是通过中介者对象进行通信从而达到松散耦合的效果。
以下是一个示例展示了代表模式的应用场景和代码实现
// 中介者接口
interface Mediator {void sendMessage(String message, Colleague colleague);
}// 具体中介者
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);}}
}// 抽象同事类
abstract class Colleague {protected Mediator mediator;public Colleague(Mediator mediator) {this.mediator mediator;}public abstract void send(String message);public abstract void receiveMessage(String message);
}// 具体同事类
class ConcreteColleague1 extends Colleague {public ConcreteColleague1(Mediator mediator) {super(mediator);}Overridepublic void send(String message) {mediator.sendMessage(message, this);}Overridepublic void receiveMessage(String message) {System.out.println(ConcreteColleague1 received message: message);}
}// 具体同事类
class ConcreteColleague2 extends Colleague {public ConcreteColleague2(Mediator mediator) {super(mediator);}Overridepublic void send(String message) {mediator.sendMessage(message, this);}Overridepublic void receiveMessage(String message) {System.out.println(ConcreteColleague2 received message: message);}
}// 测试代码
public class MediatorPatternExample {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.send(Hello from colleague1!);colleague2.send(Hi from colleague2!);}
}在上面的示例中Mediator 接口定义了中介者的操作ConcreteMediator 是具体的中介者实现。Colleague 是抽象同事类ConcreteColleague1 和 ConcreteColleague2 是具体的同事类实现。
在 MediatorPatternExample 类中我们创建了一个中介者对象 ConcreteMediator并创建了两个同事对象 ConcreteColleague1 和 ConcreteColleague2。然后通过调用 setColleague1 和 setColleague2 方法将同事对象注册到中介者中。
最后我们通过调用同事对象的 send 方法发送消息消息会经过中介者进行转发最终到达目标同事对象从而实现了对象之间的通信。
推荐一个ChatGPT使用渠道:点击直达