Java AddObserver(this) 在 static main 中

Java AddObserver(this) when in static main

所以我有一个声明为 public class Main implements Observer{} 的函数,里面有主函数 public static void main(String[] args) {},在里面,我想做这个 ObservableClass.addObserver(this)。但是由于 main 是 static 我无法做到这一点,并且向 Main class 添加一个方法也不会解决问题,因为它将从 static 调用反正功能。 基本上我希望 Main class 成为一个观察者并实现一个方法 update()。 有人知道实现这个的方法吗?谢谢。

它应该是这样的:

public class Main implements Observer {

    @Override
    public void update(Observable o, Object arg) {
        // ...
    }

    public static void main(String[] args) {
        // ...
        observable.addObserver(new Main());
    }
}

main方法最好移到另一个class, 它唯一的工作就是启动主应用程序。 在 Observer 实现中使用 main 方法启动应用程序看起来很可疑地违反了 single responsibility principle.

换句话说,Main 不应该实现 Observer。应该是另一个实现了Observer的class。 Main class 应该只有一个 main 方法,配置并启动应用程序,什么都不做。