在以下课程中:
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();
为什么这个类需要调用此方法来通知调解员点火开关?这是否意味着该方法被调用两次?一旦通过这种方法然后在调解员本身内?
答案 0 :(得分:1)
调解员的目的是在同事之间传递信息。您只需告知调解员系统中其他同事需要了解的事项。
我敢说,在这个系统中,可能还有另一个类叫Engine
,它也有一个start()
方法也注册了中介。
当Ignition
start方法调用mediator.ignitionTurnedOn()
时,调解器很可能会从getEngine().start()
方法中调用ignitionTurnedOn()
之类的内容。
这里可能没有调用过两次。
答案 1 :(得分:1)
调解员的目的是提供高度内聚的服务,允许解耦系统的元素。就汽车而言,点火系统不需要知道发生的事情的细节,例如,打开扼流圈,调用启动器等等,因为这些细节可能会根据发动机系统的类型而改变。
所以,可能会发生以下情况:
要确定,您必须了解:Ignition
的调用方式以及Mediator.ignitionTurnedOn()
实际执行的操作。