Java Beans について思うこと ― 2008年08月21日 17時56分18秒
この規定自体は良く出来た物だと思う。しかし、実装と実現方法が悪い。単純なルールに沿って関数を作るだけの規格なのに、簡単に実現する方法がない。いくつかの Beans 生成のツールなどもあったが、全ての用途に使える物ではない。手で書くことも出来るが、面倒くさいことこの上ない。変数の名前を変えるだけなのに、最低二つの関数の名前を変える事が必要になる。いわばコンピュータの奴隷となるを強いる規定なのだ。しかも、Java のクラス関数の全てを一つのファイルに詰め込まなくてはいけない文法により、実装には直接的に関係ない関数が結構な量の行数を占めてしまう事もある。はっきり言ってコードが見づらい。
似たような実装に Serializable つまり、直列化がある。ObjectStream クラスの readObject と writeObject が重要な役割を果たしている。それゆえ、全てのオブジェクトが Serializable を implements するだけでストリームを通して読み書きできるようになる。もし独自の実装が必要なら、自らその読み書きの方法を書き換える事も出来る。
Beans インターフェイスを Java のコアクラスの一つとして作り、implements をしたクラスをコンパイル時に検出する。そして、実装されている setter や getter はそのまま使い、存在しない物をコンパイラによって生成すれば速度にペナルティを払わずに実現出来る。まあ、インタプリタにて setter や getter を生成することも出来るだろう。
と思い続けて、既に十年ぐらい経つのであろうか。例え自動生成できても、目障りなコード。この現状をどうにかしてくれないかと、再び思う日々であった。
コメント
トラックバック
このエントリのトラックバックURL: http://uyota.asablo.jp/blog/2008/08/21/3702260/tb
※なお、送られたトラックバックはブログの管理者が確認するまで公開されません。
コメントをどうぞ
※メールアドレスとURLの入力は必須ではありません。 入力されたメールアドレスは記事に反映されず、ブログの管理者のみが参照できます。
※なお、送られたコメントはブログの管理者が確認するまで公開されません。