所以我有一个声明为public class Main implements Observer{}的函数,在里面我有一个主函数public static void main(String[] args) {},在它里面,我想做这个ObservableClass.addObserver(this)。但是,由于主要是static,所以我无法这样做,而且向main类添加一个方法也不会解决这个问题,因为它无论如何都是从static函数调用的。基本上,我希望Main class是一个观察者,并实现一个方法update()。有人知道如何实现这一点吗?谢谢。
发布于 2015-10-18 11:27:54
应该是这样的:
public class Main implements Observer {
@Override
public void update(Observable o, Object arg) {
// ...
}
public static void main(String[] args) {
// ...
observable.addObserver(new Main());
}
}main方法最好移到另一个类,该类的唯一任务是启动主应用程序。在main实现中启动应用程序的Observer方法看起来可疑地违反了https://en.wikipedia.org/wiki/Single_responsibility_principle。
换句话说,Main不应该实现Observer。它应该是另一个实现Observer的类。Main类应该只有一个main方法,配置和启动应用程序,并且不执行其他操作。
https://stackoverflow.com/questions/33197289
复制相似问题