在下面的类(class)中:
public class Ignition {
private EngineManagementSystem mediator;
private boolean on;
public Ignition(EngineManagementSystem mediator) {
this.mediator = mediator;
on = false;
mediator.registerIgnition(this);
}
public void start() {
on = true;
mediator.ignitionTurnedOn();
System.out.println("Ignition turned on");
}
public void stop() {
on = false;
mediator.ignitionTurnedOff();
System.out.println("Ignition turned off");
}
public boolean isOn() {
return on;
}}
我不确定这些代码行的原因,例如:
mediator.ignitionTurnedOn();
为什么这个类需要调用这个方法来通知中介器点火开关已打开?这是否意味着该方法被调用两次?一旦通过此方法,然后在调解器本身内?
最佳答案
调解员的目的是在同事之间传递信息。您只需将系统中其他同事需要了解的事情告知调解员即可。
我敢说,在这个系统中,可能还有另一个类,可能称为 Engine
其中有 start()
方法也向中介者注册。
当 Ignition
启动方法调用 mediator.ignitionTurnedOn()
,最有可能的是,调解者随后会调用类似 getEngine().start()
的内容。从其内部 ignitionTurnedOn()
方法。
这里可能没有任何东西被调用两次。
关于java - 中介者设计模式: Why do classes have to inform mediator of their behaviours?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23312236/