Facade 门面- mediator 调停者

门面模式

Facade 门面- mediator 调停者 - 图1
外部与一个子系统的通信必须通过一个统一的门面对象进行就是门面模式。
门面模式要求一个子系统的外部与其内部的通信必须通过一个统一的门面(Facade)对象进行。门面模式提供一个高层次的接口,使得子系统更易于使用。

  1. package cn.qlq.facade;
  2. //门面类
  3. public class SecurityFacade {
  4. private static Camera camera1 = new Camera();
  5. private static Camera camera2 = new Camera();
  6. private static Light light1 = new Light();
  7. private static Light light2 = new Light();
  8. private static Light light3 = new Light();
  9. private static Alarm alarm = new Alarm();
  10. private static Sensor sensor = new Sensor();
  11. public void active() {
  12. camera1.turnOn();
  13. camera2.turnOn();
  14. light1.turnOn();
  15. light2.turnOn();
  16. light3.turnOn();
  17. alarm.activate();
  18. sensor.activate();
  19. }
  20. public void deactive() {
  21. camera1.turnOff();
  22. camera2.turnOff();
  23. light1.turnOff();
  24. light2.turnOff();
  25. light3.turnOff();
  26. alarm.deactivate();
  27. sensor.deactivate();
  28. }
  29. }
  30. package cn.qlq.facade;
  31. //客户端代码
  32. public class Client {
  33. public static void main(String[] args) {
  34. SecurityFacade facade = new SecurityFacade();
  35. facade.active();
  36. }
  37. }

调停者

Facade 门面- mediator 调停者 - 图2
调停者(Mediator)模式又称为中介者模式,包装了一系列对象相互作用的方式,使得这些对象不必互相明显引用。从而使它们可以较松散的耦合。当这些对象中的某些对象之间的相互作用发生变化时,不会立即影响到其他的一些对象之间的相互作用。从而保证这些相互作用可以彼此独立地变化

多个子系统之间的传信问题,鼎鼎大名的应用:消息中间件