今、私はオブザーバブル/オブザーバブルのパターンに出くわしました。オブザーバブルはすべてのオブザーバーに通知します。Observerはすべて、ObservableがObservableを拡張している間、インターフェースObserverを実装します。インターフェースに関する知識のギャップを埋めようとしていると思います。抽象クラスのポイントとその仕組みは理解していますが、インターフェースには注意が必要です。インターフェイスの場合、それらがテンプレートとして機能することを理解しています。テンプレートを実装する場合は、インターフェイスからすべてのメソッドを追加する必要があります。これは純粋にあなたのプロジェクトの組織的な助けのためだと思いました。
ただし、このObserver / Observableの場合、Observerを実装するオブジェクトでupdate()関数がどのように呼び出されているのかわかりません。Observableへの唯一のリンクは、addObserver()を呼び出してオブザーバーを追加し、他のオブザーバーが追加されたリストにそれを格納する必要があることです。しかしその後、update()は各オブザーバーでどのように呼び出されますか?Observableは、オブザーバーのリストを1つずつ確認し、setChanged()を呼び出してからnotifyObservers()を呼び出したらobserver.update()を呼び出しますか?これは理にかなっていますが、実装は私が思っていたよりも隠されています。
私はこれをオブザーバーパターンのコンテキストに入れましたが、実際には何にでも当てはまります。ほとんどすべてのイベントベースのものがインターフェースを使用していることに気づきました。これは、オブジェクトが次に呼び出される関数を持つことが保証されているためですか?