[Seasar-user] $B!Z<ALd![(BRulet$B$N(BdoExecute$B%a%=%C%I$K$D$$$F(B

B air-beat.com $B1@8!!>OMNB habu
2003年 11月 12日 (水) 15:43:33 JST


こんにちは。ここでははじめまして。羽生です。

> > Ruletって、doExecuteメソッドは複数定義できないのでしょうか?
> > 下記のようにRuletを定義して呼び出すとエラーになりました。
> > 「引数の数が違う!」って叫んでますね。
> > 
> 複数定義すると、実行時にどのメソッドを呼び出すのか、
> 決定するためのオーバーヘッドが生じます。
> 複数定義したくなることは、あまりないだろうと思っているので、
> めったにない場合のために、通常の呼び出しにもオーバーヘッドが
> 生じるのは良くないという考えで、複数定義はできないようにしています。

技術的なオーバヘッドもさることながら、もっと本質的な点で
複数定義は「?」かな〜とか思ったので、ちょっと私見をば。

・・・私の考えとしては、複数定義をするというのは、
「異なるルール」に同じ名前を付けてしまえるという点で
好ましくないと考えています。

Ruletの醍醐味は、ビジネスルールの切り分けが明解になって
仕様変更に耐えられるアプリケーション構造を実現できる点だと
思っています。逆に言えば、プログラミングにおける生産性は
必ずしも高いとは思いません。

# まぁ、書き方次第だと思いますし、ほそ辺りだと生産性は
    かなり上がってると思うし、一概には決して言えないんですけど。

ルールへの名付け、という行為は、DB設計におけるドメイン定義
(項目名の定義ですね)と同等で、ある意味ではビジネスルールの
正規化(1つのルールは1つの場所へ:one rule in one place)に
つながると思うんですね。

そういう意味で、確かに複数定義できるとコーディングが楽では
あるんですが、整理されていないという点で、その後の苦労が
増えるように思います。

急がば回れを各種の制約によって実現しているのが、Nazunaの心だと
勝手に私は考えていますが、どないでっしゃろか?>ひがさん

というわけで、タイ@Seasar案件頑張ってゲットするぜ!からの
メールでした(^^)

では、みなさん今後ともよろしくお願いいたします。



─PR──────────────────────────────
アトピーでお悩みの方のお役に立てるかも:http://www.shittori.com/
────────────────────────────────
有限会社エア・ロジック(http://www.air-logic.co.jp/)
羽生 章洋            (mailto:[E-MAIL ADDRESS DELETED]   )
『やろうやろう、どんどんやろう、やめずにやれば必ずできる』
─PR──────────────────────────────
Air開発のInternet外為トレーディングシステム:http://www.m2-j.com/
────────────────────────────────




Seasar-user メーリングリストの案内