JavaFxアプリケーションでObserverパターンを実装しようとしています。私はここで質問したことは一度もありませんが、これは私を少し狂ってしまいます。JavafxとObserverパターン - UIの更新
私はObserverパターンを使用して、電話番号のファイルを解析しているクラスを監視し、ファイルが解析されると自動的にUIを更新しようとしています。私は私の質問に入る前に
、ここに私のコードは次のとおりです。
抽象クラスObserver.java
public abstract class Observer
{
public PhoneBook numbers;
public abstract void update();
}
私はこれを実装するクラスがあります。では
public class PhoneBookObserver extends Observer {
public PhoneBookObserver(PhoneBook numbers)
{
this.numbers = numbers;
this.numbers.attach(this);
}
@Override
public void update()
{
System.out.println(""NUMBER - : " + numbers.GetNumbers());
}
}
を私は新しいPhoneBookObserverを作成しました。
public PhoneBook ParsePhoneBook()
{
PhoneBook nums= new PhoneBook();
PhoneBookObserver p = new PhoneBookObserver(nums);
// ... Parsing of file - works fine
return nums;
}
現在、これが実行され、PhoneBookObserverのupdate()からのprintlnが出力されます。
私の質問は以下のとおりです。
- PhoneBookObserverの更新方法は、私のために私のUIを更新することはできますか?コントローラのJavaFx要素にはどのようにアクセスしますか?
- コントローラをオブザーバにし、update()をオーバーライドしてコントローラでUI要素を更新できますか?それは悪いですか?
[JavaFXプロパティ](http://docs.oracle.com/javase/8/javafx/properties-binding-tutorial/binding.htm#JFXBD107)は基本的にすでにオブザーバパターンを実装しています。なぜそれらを使用して、車輪を改革するのを避けてはいけませんか? –
リスナーはどこに追加しますか?初期化で? –
通常、はいです。どのように設定するかによって異なりますが、ほとんどのシナリオではこれが明らかです。 –