相关疑难解决方法(0)

我们什么时候应该使用Observer和Observable?

一位采访者问我:

什么是ObserverObservable我们何时应该使用它们?

我不知道这些术语的,所以,当我回到家,开始对谷歌搜索ObserverObservable,我发现来自不同资源的一些要点:

1)Observable是一个类,Observer是一个接口.

2)Observable该类维护一个Observers 列表.

3)当一个Observable对象被更新时,它会调用update()每个Observers 的方法来通知它,它被改变了.

我找到了这个例子:

import java.util.Observable;
import java.util.Observer;

class MessageBoard extends Observable
{
    public void changeMessage(String message) 
    {
        setChanged();
        notifyObservers(message);
    }
}

class Student implements Observer 
{
    @Override
    public void update(Observable o, Object arg) 
    {
        System.out.println("Message board changed: " + arg);
    }
}

public class MessageBoardTest 
{
    public static void main(String[] args) 
    { …
Run Code Online (Sandbox Code Playgroud)

java design-patterns observers observable observer-pattern

191
推荐指数
7
解决办法
14万
查看次数

为什么要弃用观察者模式?

我注意到我的依赖注入,观察者模式繁重的代码(使用Guava的EventBus)通常比我过去编写的没有这些功能的代码更难调试.特别是在尝试确定调用观察者代码的时间和原因时.

马丁·奥德斯基和朋友们写了一篇冗长的论文,题目是"弃用观察者模式",我还没有花时间阅读它.

我想知道观察者模式的错误是什么,以及更好地引导这些聪明人写这篇论文的(建议的或其他的)替代方案.

首先,我确实在这里找到了一篇(有趣的)论文批评.

oop design-patterns observer-pattern

39
推荐指数
3
解决办法
2万
查看次数

为什么属性改变了监听器而不是可观察的

我遇到了类设计的问题,直到我发现了observable(使用观察者设计模式)并因此创建了一个使用它的小应用程序来解决我的问题.我很高兴和自豪,我用一个好的原则来解决问题.

现在我即将开始我的主要应用程序,并刚刚阅读此内容

制作JFrame和Observable对象

为什么海报建议不要使用observable而是告诉使用propertychangelistenr?使用observable有什么问题吗?

问候

java swing design-patterns

15
推荐指数
2
解决办法
7065
查看次数

如何使用java.beans包替换(现已弃用)Observable和Observer?

随着Java 9的到来,Observable类和Observer接口现已弃用.

Observablejavadoc的状态:

[Observable]和Observer接口已被弃用.Observer和Observable支持的事件模型非常有限,Observable提供的通知顺序未指定,状态更改不与通知一一对应.对于更丰富的事件模型,请考虑使用java.beans包.

它建议使用该java.beans包,但是如何使用它来创建一个模拟Observer模式的事件处理程序呢?

java javabeans observable observer-pattern java-9

7
推荐指数
0
解决办法
672
查看次数