中介者模式(Mediator Pattern)
中介者模式(Mediator Pattern)又称为调节者模式,用一个中介对象封装一系列的对象交互,使各对象之间不需要显示的直接相互作用,从而使其松耦合。通过中介者解耦各层次对象的直接耦合,层次对象的对外依赖交给中介处理。属于行为型模式。
适用场景
- 系统中对象之间存在复杂的引用关系,产生的相互依赖关系结构混乱。
- 交互的公共行为,如果需要改变行为。
中介者模式与代理模式
都起中间角色,代理模式不光起中介作用,而且还能增强职责功能。
public abstract class Mediator {
protected ServiceA serviceA;
protected ServiceB serviceB;
public void setServiceA(ServiceA serviceA) {
this.serviceA = serviceA;
}
public void setServiceB(ServiceB serviceB) {
this.serviceB = serviceB;
}
public abstract void serviceA();
public abstract void serviceB();
}
命令模式(Command Pattern)
命令模式(Command Pattern)是对命令的封装,每一个命令都是一个操作,请求的一方发出请求要求执行一个操作,接收的一方接收到请求并执行操作;命令模式解耦了请求和处理,请求方只需发出命令,不用关心命令如何被执行等。属于行为型模式。
public interface ICommand {
void execute();
}
public class CommandA implements ICommand {
Processor processor;
public CommandA(Processor processor) {
this.processor = processor;
}
@Override
public void execute() {
processor.action();
}
}
public class Invoker {
ICommand command;
public Invoker(ICommand command) {
this.command = command;
}
public void action() {
command.execute();
}
}
public class Processor {
public void action() {
// 执行命令
}
}
public class Test {
public static void main(String[] args) {
ICommand command = new CommandA(new Processor());
Invoker invoker = new Invoker(command);
invoker.action();
}
}