中介者模式(Mediator Pattern)是一种设计模式,用于减少类之间的直接依赖,通过引入一个中介者类来协调它们之间的交互。在 Java 中,中介者模式可以帮助解决多对象交互问题,提高系统的灵活性和可维护性。
以下是如何使用中介者模式解决 Java 多对象交互问题的步骤:
public interface Mediator {
void sendMessage(String message, Colleague colleague);
}
import java.util.ArrayList;
import java.util.List;
public class ConcreteMediator implements Mediator {
private List<Colleague> colleagues = new ArrayList<>();
@Override
public void sendMessage(String message, Colleague colleague) {
// 根据消息内容和接收者,选择合适的方式转发消息
for (Colleague c : colleagues) {
if (!c.equals(colleague)) {
c.notify(message);
}
}
}
public void addColleague(Colleague colleague) {
colleagues.add(colleague);
}
}
public abstract class Colleague {
protected Mediator mediator;
public Colleague(Mediator mediator) {
this.mediator = mediator;
}
public abstract void notify(String message);
}
public class ConcreteColleagueA extends Colleague {
public ConcreteColleagueA(Mediator mediator) {
super(mediator);
}
@Override
public void notify(String message) {
System.out.println("ConcreteColleagueA received message: " + message);
// 处理消息,并可能需要向其他同事类发送消息
mediator.sendMessage("Hello from ConcreteColleagueA", this);
}
}
public class Client {
public static void main(String[] args) {
Mediator mediator = new ConcreteMediator();
Colleague colleagueA = new ConcreteColleagueA(mediator);
Colleague colleagueB = new ConcreteColleagueB(mediator);
mediator.addColleague(colleagueA);
mediator.addColleague(colleagueB);
// 通过中介者发送消息
mediator.sendMessage("Hello from Client", colleagueA);
}
}
通过使用中介者模式,我们可以将多对象之间的交互逻辑集中在一个中介者类中,从而降低类之间的耦合度,提高系统的灵活性和可维护性。
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。