首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Java (这)在静态AddObserver中

Java (这)在静态AddObserver中
EN

Stack Overflow用户
提问于 2015-10-18 11:13:52
回答 1查看 623关注 0票数 0

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

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-10-18 11:27:54

应该是这样的:

代码语言:javascript
复制
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方法,配置和启动应用程序,并且不执行其他操作。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/33197289

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档