在以下课程中:
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()
的内容。
可能在这里没有两次被调用。