2007/05/16

trigger on

思ったよりは盛り上がっていないJavaFXだけれども、
とりあえず、手に入るドキュメントは読了。
オーサリングツールが公開されれば盛り上がるかな。

trigger on句はちょっとした革命。
JavaだとBean仕様に従ってアクセサメソッドを定義していたけど、
C#のように「必要な時だけ定義」して、
=演算子の代入で自動的にtrigger on句で
指定した処理が起動するようになってる。
つまり、

class Model
{
attribute hoge: Number;
}

trigger on Model.hoge = newValue
{
// 処理1
}

として、

Model{hoge: 10}

とすると、
代入する際には、triggerで指定した処理1が実行される。
いつのためなのか誰の為なのかわからないアクセサメソッドを
必ず書いていたわけで、それに比べると素敵だ。

でもTriggerが凄いのはここから先。
例えば、

 trigger on new Model
{
// 処理2
}

として、

 Model{}

とすると、
なんと処理2が走る。
trigger on句の後に指定されいているnew Model句は
Modelのインスタンス生成のタイミングを指定している。
これはただのアクセサメソッドがどうのこうのと言うよりも、
アスペクトに近いものと判断したほうがよさそうだ。

ただし、そうなるとややこしい。
functionやoperationとしてモデルの関数を明示的に実装するのか、
それともtriggerで暗黙的に実装するのか。
以前にSpring FrameworkのAOPでValueObjectに対して
振舞を持たせている(=ドメイン化)人がいたけれども、
そういった迷路がおぼろげながら僕の眼前にも広がるのかもしれない。


posted by SuZ at 18:05 | Comment(1) | TrackBack(0) | Programming::Java
この記事へのコメント
初めまして。

迷路には出会いましたのでしょうか?
Posted by 師子乃 at 2019/01/06/ 15:01
コメントを書く
お名前: [必須入力]

メールアドレス:

ホームページアドレス:

コメント: [必須入力]

認証コード: [必須入力]


※画像の中の文字を半角で入力してください。

この記事へのトラックバック