2

我必须实现一个通知服务并发送一条包含一些关于音乐的新内容的消息。

    public class FilterByMusic implements Observer {

    private String music;
    private Observable observe;

    public FilterByMusic(String music, Observable observe) {
        this.music = music;
        this.observe = observe;
    }

    @Override
    public void update(Observable o, Object arg) {
        System.out.println(arg);
    }
}

我创建了另一个类,它用这种方法扩展了 Observable

    public void newMusicNotify() {
    //new music here.. 
    this.setChanged();
    this.notifyObservers(music);
    }

因此,如果有新音乐它会通知所有观察该对象的观察者,它就会起作用。但是现在我想要一个过滤器,它只向观察者发送一条消息,如果它是由我在 FilterByMusic 中作为参数的特定音乐发出的。我有一个想要通知所有新音乐的观察者和一个只想要特定音乐的观察者(因为他不喜欢所有类型的音乐)我该怎么做?

我感谢你所有的帮助!

4

2 回答 2

0

如果你想有不止一个Observable使用某种Containerlike Map(即map["rockObserver"]),并且进入方法update(Observable o, Object arg)使用switch取决于music.

于 2012-06-16T10:22:28.157 回答
-1

我建议不要使用 Java 的 oberver 接口,而是自己做。这样,您将更加灵活。

于 2012-06-16T10:12:16.577 回答