java - 中介者设计模式: Why do classes have to inform mediator of their behaviours?

标签 java design-patterns methods mediator

在下面的类(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/

相关文章:

objective-c - 为什么不能在每行声明多个方法原型(prototype)?

java - 如何在类中输入值时不覆盖值?

function - 通过对象而不是指向它的指针调用带有指针接收器的方法?

java - 在使用alternatives的Linux系统上,JAVA_HOME的正确路径是什么?

java - 保存/加载顺序随机生成的关卡

java - 实现 java.util.Observer 的类中的所有静态成员?

reference - 开发术语和定义引用

java - 使用相同的测试数据运行所有测试

ruby-on-rails - Rails 3.2 JS-heavy 应用程序的设计模式

Python:尝试三次函数直到全部失败