-タグハンドラ

Nirvanaのタグハンドラの考え方を応用して、うまく考えると先延ばしの懸案のいくつかが同時に解決する気がしています。

  • カスタムタグの自動インジェクション
  • マジックカスタムタグのユーザー定義
  • ルールベースによる複雑なインジェクション

それぞれ個々の懸案について初期に具体的なやり方を考えなくても、コードジェネレータの基本構造にNirvana的なハンドラの設計を盛り込んでおくと、初期実装において手分けできるかは別として、将来のメンテナンスや仕様の拡張もやりやすい形になると思います。コードジェネレータ内でハンドラに分割することでロジックを疎結合に作ることができるように思ってます。ちなみに、ハンドラと言ってるものは、個々は限られた状況に応じて、対応したソースコードを書き出す機能を持たせるsingletonのオブジェクト群を考えています。
で、Jasper2は実はそのように作られています。Generatorという4000ステップを越えるひとつのクラスに、内部クラスとして実装されたDOMノードへのハンドラ群があります。昨日のBLOGの「Jasper2ガイド(1)」では、そのハンドラ群のうち、JSPカスタムタグをハンドルするハンドラのコードへのポインタを振りました。Jasper2も内部クラス群としてひとつのクラスにまとめるのではなく、バラせばNirvana的な構造になっていると言えます。。。言いすぎかな。