编写测试代码
代码语言:javascript复制public class MediatorTest {
public static void main(String[] args) {
ConcreteMediator mediator = new ConcreteMediator();
ColleagueSales sales = new ColleagueSales(mediator);
ColleagueFinance finance = new ColleagueFinance(mediator);
ColleagueMarket market = new ColleagueMarket(mediator);
mediator.setSales(sales);
mediator.setFinance(finance);
mediator.setMarket(market);
sales.send("We have a new customer!");
finance.send("Please check the payment.");
market.send("We need to start a new promotion.");
}
}
在这个示例中,我们定义了一个抽象中介者类Mediator,它包含了一个抽象的send方法,用于将消息发送给同事对象。然后定义了具体中介者类ConcreteMediator,它实现了中介者接口,并负责协调各个同事对象之间的通信。
接着定义了一个抽象同事类Colleague,它包含了一个中介者对象,并定义了一个抽象的send方法和一个抽象的receive方法,分别用于发送和接收消息。最后,定义了具体同事类ColleagueSales、ColleagueFinance和ColleagueMarket,它们实现了同事接口,并与中介者对象进行通信。
在测试代码中,我们创建了ConcreteMediator对象和三个具体同事对象,然后将具体同事对象分别设置到中介者对象中。接着,我们分别调用具体同事对象的send方法,向其他同事对象发送消息。运行程序后,可以看到每个部门都收到了相应的消息。
总结:
中介者模式可以有效地降低系统中各个对象之间的耦合度,提高系统的灵活性和可维护性。通过将对象之间的通信集中处理,可以使系统更易于扩展和修改。在实际应用中,中介者模式常用于系统设计中复杂的交互