gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-01 14:43:58 24 4
gpt4 key购买 nike

我想创建一个类R,它将观察类S的所有实例,也就是说,我正在使用观察者可观察模式。我确信没有必要拥有类 R 的多个实例。这就是为什么我将 R 的所有成员设置为静态的。但是,我不确定这是否是设计类(class)的正确方法。 Observablepublic void addObserver(Observer o) 方法需要一个对象而不是静态类。如果我创建一个 R 实例以便将其传递给 addObserver 可以吗?它是否以任何方式违反了 Observable-Observer 模式?

最佳答案

即使您不需要 R 的多个实例(现在),您也不必也不应该将 R 设计为仅包含静态成员。程序设计可能规定仅使用一个 R 实例。有些人甚至建议使用单例模式以编程方式强制执行。

The public void addObserver(Observer o) method of Observable needs an object and not a static class

短语静态类通常引用一个被声明为静态的内部类,以表明它可以在没有封闭的外部类实例的情况下存在。我认为您错误地使用了这个短语。

Is it okay if I create an instance of R only so that I can pass it to addObserver ?

是的,当然。仅仅因为您以所有成员都是静态的并因此属于该类(由类加载器加载)的方式声明了 R,并不意味着您可以不要根据需要构造和使用尽可能多的类实例。

Does it violate the Observable-Observer pattern in any way ?

只要R 实现了 Observer,就不会。事实上,同一个观察者观察多个可观察对象并不异常。

关于java - 实现 java.util.Observer 的类中的所有静态成员?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15655772/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com