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使用が必要Containerな場合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 に答える