日曜プログラミング

休日趣味でやってるプログラミング関連記事をダラダラと

プロパティとバインドの感想

今回は使ってみたと言う記事ではないので悪しからず。

JavaFX 関連の情報を見てると注目機能として上がってるっぽいバインド、言葉や概念だけちらっと聞いててもよー分からんかったのでひとまず使いたかった TableView をガシガシ試してた。SimpleStringProperty とかのクラスは出てきたたものの TableView にデータ流し込むのに必要なクラスと言う割り切りでやってた。

この当たりでそろそろ何者なのかを自分なりに理解しておきたく検索してみたがこれも例に漏れずあまり日本語リソースが見当たらなかったのでしょうがなく公式チュートリアルを眺める。
Using JavaFX Properties and Binding | JavaFX 2 Tutorials and Documentation

結論、あんまり使う機会ないかなと感じた。
概要を読んだ感想だけ簡単に書く。

読んだ中の自分の理解

  • JavaFX のプロパティは JavaBeans のプロパティをベースにしている
  • JavaBeans はクラス内のフィールドをカプセル化する為に getter/setter メソッドを持たせ、メソッド名はフィールド名に沿ったものを付けるよう仕様として定義*1
  • Bind は変数間の値が変更されたら自動的に同期させる仕組み
  • プロパティとしてのオブジェクトのみバインドとして設定する事ができる
  • バインドは(高レベル API だと?)一方向っぽく、被バインドされる側の値を変更することはできない*2

イベントベースよりも細かいタイミングで複数オブジェクト間の同期を取りたいケースがあるならば使う機会があるくらいかなあ。
後表示する為のモデルデータを一部共有して複数の GUI 間で使い回すと言う場面には良いかもしれない。

何にせよ自分にとってはあんまりピンと来なかったので頭の片隅に留めておく程度にしておく。

*1:個人的にはこれが意味あるのかが疑問ではあるが、JavaBeans 自体やバインドの方は実際使うとなればもうそう言うものだとして割り切れるとは思う

*2:これだけどっかのサイトの情報をチラ見しただけ