コンポーネントがありTitleWindow
ます。3 で提供されたデータを保存できますTextInput
。
そのデータは、元のコンポーネント内ではなく、別のコンポーネント内にDropDownList
ある を「埋めます」。 TitleWindow
remoteObject
my を埋める (または更新する) メソッドを呼び出すにはどうすればよいDropDownList
ですか?
どんなアイデアでも大歓迎です!
コンポーネントがありTitleWindow
ます。3 で提供されたデータを保存できますTextInput
。
そのデータは、元のコンポーネント内ではなく、別のコンポーネント内にDropDownList
ある を「埋めます」。 TitleWindow
remoteObject
my を埋める (または更新する) メソッドを呼び出すにはどうすればよいDropDownList
ですか?
どんなアイデアでも大歓迎です!
シングルトンは悪い考えであり、それらを使用する習慣を身につけるべきではありません。代わりに、View からイベントをディスパッチし、Service オブジェクトにアクセスできる別のものからイベントをキャッチします。
サービスはビューの一部であってはならないことに注意してください。ビューの責任は、データを表示し、ユーザーからデータを変更する要求を取得することであり、サーバーと通信することではありません。
このパターンを念頭に置いて作成されたアプリケーションの例については、以下を参照してください。
これらはいくつかの一般的なフレームワークに対して書かれていることに注意してください。ただし、そのフレームワーク コードを別のもの (独自のコードであっても) に簡単に置き換えることができるように記述されています。
参考までに、サービス層がビューで直接呼び出されている単純な実装を次に示します。ビューを変更せずに別のサービスを呼び出すことはできませんが、静的サービスを使用すると、他の場所から使用できることになります。
その静的な使用法は後の例に残っていますが、今日、グローバルにアクセス可能なオブジェクトに依存するものを書くことは決してありません. これは、私がテスト駆動開発を発見したことが一因であり、「実際の」静的オブジェクトを、テスト対象を分離できるオブジェクトに置き換えることは不可能です。ただし、2 つの「より良い」例のコードのほとんどがその静的オブジェクトから隔離されているという事実は、それを別の方法で提供されるものに置き換えるのは簡単であることを意味します。
ここでの教訓は、静的なグローバル オブジェクトを使用する場合は、できるだけ抽象化してそれらをロックすることです。ただし、ベスト プラクティスに関心がある場合は、それらを避けてください。シングルトンは最悪の種類の静的グローバル オブジェクトであることに注意してください。