14

私は最近、JGoodies、GlazedLists、JSR-295 などのさまざまな Java データ バインディング ツールの学習と使用を試みることに時間を費やしました。私が解決しようとしている問題はそれほど難しくありません、コードの量は私はバインディング プロセスをサポートするために書かなければなりませんでした。

提供されているツールは、単純な構成と拡張以外には役に立たないことがわかりました (特に GlazedLists は優れたツール セットを提供しますが、拡張するにはシステムが複雑すぎます)。

私はデータバインディングのアイデアが本当に好きですが、現状では深刻な欠陥があるようです. 何か不足していますか?

4

2 に答える 2

4

アプリが些細なものであれば、バインディングを行うか、リスナーを 1 つずつ作成するかは問題ではありません。

アプリが何ヶ月も進歩した場合、事後にバインドを導入すると、多少の苦痛が生じます。ほとんどすべての (役立つ) テクノロジーについても同じことが言えます。痛みの大部分は、以前は当然のことと思っていた混乱から生じる可能性があります。

バインディングを正しく使用すると、GUI と GUI の動作を完全に分離できる場合があります。これはつまり

  • Swing なし、EDT なし、単純な単体テストのみで、プレゼンテーション モデル(コンポーネントをバインドするもの) をテストできます。
  • 非常に少数のSwingコンポーネントのみを含む単純なテストでバインディングをテストできます

バインディング フレームワークなしで同じことを達成しようとすると、独自のバインディング フレームワークを作成することになります。

私見ですが、Java の世界でのバインディングについては深刻な問題があります。PropertyChangeSupport を使用して getter + setter を作成する必要があり、面倒でエラーが発生しやすくなります。Java でこれを修正する現実的な方法は見当たりませんが、他の言語 (Scala を考えてください) はここで興味深い機会を提供します。興味がある場合は、私の最後のブログ記事を参照してください: http://blog.schauderhaft.de/2011/05/01/binding-scala-objects-to-swing-components/

于 2011-05-05T14:38:54.833 に答える