概念
中介者模式(Mediator Pattern)是用来降低多个对象和类之间的通信复杂性。这种模式提供了一个中介类,该类通常处理不同类之间的通信,并支持松耦合,使代码易于维护。中介者模式属于行为型模式。
参考链接: 中介者模式 | 菜鸟教程
代码案例
生产类
@Slf4j
public class Production {
public static String product(MediatorBicycle bicycle, int count){
log.info("生产{}辆{}自行车",count,bicycle.getName());
return "生产"+count+"辆"+bicycle.getName()+"自行车";
}
}
生产自行车类
@Setter
@Getter
public class MediatorBicycle {
private String name;
public MediatorBicycle(String name) {
this.name = name;
}
public String product(int count){
return Production.product(this,count);
}
}
测试主类
/**
* 设计模式控制器
*/
@RestController
@RequestMapping("/designPattern")
@Slf4j
public class DesignController {
@PostMapping("/mediator")
public ResponseModel mediator(@RequestBody String[] bicycleArr) {
log.info("mediator ---- start ");
List list = new ArrayList();
for (int i = 0; i < bicycleArr.length; i++) {
MediatorBicycle bicycle = new MediatorBicycle(bicycleArr[i]);
String product = bicycle.product(i+1);
list.add(product);
}
log.info("mediator ---- end ");
return new ResponseModel("中介者模式完成", 200, list);
}
}
测试案例
2022-07-01 00:44:37.505 INFO mediator ---- start 【http-nio-8081-exec-8】【DesignController:77】
2022-07-01 00:44:37.505 INFO 生产1辆BMW自行车 【http-nio-8081-exec-8】【Production:8】
2022-07-01 00:44:37.505 INFO 生产2辆Giant自行车 【http-nio-8081-exec-8】【Production:8】
2022-07-01 00:44:37.506 INFO 生产3辆Benz自行车 【http-nio-8081-exec-8】【Production:8】
2022-07-01 00:44:37.506 INFO 生产4辆Merida自行车 【http-nio-8081-exec-8】【Production:8】
2022-07-01 00:44:37.506 INFO mediator ---- end 【http-nio-8081-exec-8】【DesignController:84】