它用于减少对象之间的平直依赖关联手机APP下载登录入口
发布日期:2024-06-07 19:00 点击次数:147中介者花式(Mediator Pattern)是一种行径策画花式,它用于减少对象之间的平直依赖关联,通过引入一个中介者对象来配合它们之间的交互。这么不错镌汰系统的耦合度手机APP下载登录入口,使代码愈加易于崇拜和延迟。
以下是一个使用Java讲话终了的中介者花式的肤浅示例:
最初,界说一个中介者接口:
java
public interface Mediator {
void changed(Colleague colleague);
}
然后,界说一个共事类,共事类通过中介者进行通讯:
java
public abstract class Colleague {
protected Mediator mediator;
public Colleague(Mediator mediator) {
this.mediator = mediator;
}
public abstract void send(String message);
public void receive(String message) { www.86ptfe.cn
System.out.println(getName() + " received: " + message);
}
protected abstract String getName();
}
接下来,界说具体的共事类A和B:
java
public class ColleagueA extends Colleague {
public ColleagueA(Mediator mediator) {
super(mediator);
}
@Override
public void send(String message) {
System.out.println(getName() + " sending: " + message);
mediator.changed(this);
}
@Override
protected String getName() {
return "Colleague A";
}
}
public class ColleagueB extends Colleague { www.zrtgjx.com
public ColleagueB(Mediator mediator) {
super(mediator);
}
@Override
public void send(String message) {
System.out.println(getName() + " sending: " + message);
mediator.changed(this);
}
@Override
protected String getName() { www.nmghyba.com
return "Colleague B";
}
}
临了,界说具体的中介者终了类:
java
public class ConcreteMediator implements Mediator {
private ColleagueA colleagueA;
private ColleagueB colleagueB;
public ConcreteMediator() {
colleagueA = new ColleagueA(this);
colleagueB = new ColleagueB(this);
}
@Override
public void changed(Colleague colleague) {
if (colleague == colleagueA) { www.cygzsb.cn
colleagueB.receive("Message from A");
} else if (colleague == colleagueB) {
colleagueA.receive("Message from B");
}
}
public ColleagueA getColleagueA() { www.zhuruilei.cn
return colleagueA;
}
public ColleagueB getColleagueB() {
return colleagueB;
}
}
咫尺,咱们不错创建一个测试类来演示中介者花式的责任面貌:
java
public class MediatorPatternDemo { www.bmthm.com
public static void main(String[] args) {
ConcreteMediator mediator = new ConcreteMediator();
ColleagueA colleagueA = mediator.getColleagueA();
ColleagueB colleagueB = mediator.getColleagueB();
colleagueA.send("Hello from A");
colleagueB.send("Hello from B");
}
}
在这个示例中,ConcreteMediator 是中介者的具体终了,它握有对 ColleagueA 和 ColleagueB 的援用。ColleagueA 和 ColleagueB 是具体的共事类,它们通过调用中介者的 changed 步调来见知中介者现象变化,然后中介者细腻配合它们之间的通讯。
脱手 MediatorPatternDemo 类中的 main 步调手机APP下载登录入口,你会看到共事类之间通过中介者进行通讯的示例输出。
voidthis中介者classsend发布于:福建省声明:该文不雅点仅代表作家本东谈主,搜狐号系信息发布平台,搜狐仅提供信息存储空间办事。
栏目分类