在以下课程中:

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()的内容。

可能在这里没有两次被调用。

10-08 01:17