Zazelです。
=== wtnabe@... (ねこ丸) さんが書かれた
=== <20060706051118.7BC72215F0B@...> にて
> 閑舎 writes:
>
> > そうですね、その点、あまりオブジェクト化されてないとは思います。ただ
> > Body, P だけでなく、Hr, Ul, Li, Img, ... と増やしていき、それらに共通の
> > $line と $length というその長さを参照させるとなるとグローバル変数にしな
> > いと、引数がやたら多くなり、かえって見にくいかなぁ、それにその都度変数内
> > 容がコピーされると重いな、と。
要素ごとに新たなインスタンスが生成されていくのは重くないので
しょうか?(^_^)
> 結果としてグローバル変数を使うよりもちょっとタイプ量が増えただけじゃ
> ん、という感じはするかもしれませんが、閉じている安心感はやはり絶大です。
インスタンス内に閉じ込めることはかなり重要です。同じクラスの
インスタンスである$obj1と$obj2があったとして、$obj1->func() と
$obj2->func() が同時/並行に動けるようになります。というか
分離しないと腐ります。
私も自分で作るならば、解析器のクラスにして解析器だけを再帰的に
呼ぶようにすると思います。文章構造は入れ子のハッシュに格納。
特別処理が必要な要素があれば専用のメンバー関数を起こして、
関数の有る無しを調べて共通処理から呼ぶようにすることでしょう。
(* SEKI Masatoshi // Zazel *)
(* Would you hold my hand? Softly, let's linger. *)