[Jiemamy-dev:34] Re: [RFC] 制約モデルの継承構造について

Back to archive index

Junichi Kato j5ik2****@gmail*****
2008年 6月 6日 (金) 22:10:57 JST


かとうです。

08/06/06 に MIYAMOTO Daisuke <daisuke_m****@yahoo*****> さんは書きました:
>
> 都元でっす。
>
>
> というフィールドになると思います。
> RDBMSには NOT NULL, UNIQUE, PRIMARY KEY, CHECK という4種の制約がありますが、
> (他にあったっけw) これらをConstraint型でどのようにあらわすか、に悩んでます。
>
> 「PK = UNIQUE + NOT_NULL + α」の制約と考えて、
>
> interface Constraint
> class NotNullConstrait implements Constraint
> class UniqueConstraint implements Constraint
> class PrimaryKeyConstrait extends NotNullConstrait, UniqueConstraint
> class CheckConstraint implements Constraint
>
> ...って多重継承してるじゃんオイw かといって、NotNullとUniqueはインスタンスが
> 必要なのでinterfaceにする訳にはいかない。
> あれ、NULL入れられるPKってあったっけ? 入れられるとしたら
>
> interface Constraint
> class NotNullConstrait implements Constraint
> class UniqueConstraint implements Constraint
> class PrimaryKeyConstrait extends UniqueConstraint
> class CheckConstraint implements Constraint
>
> かなぁ。っていうかもう、
>
> interface Constraint
> class NotNullConstrait implements Constraint
> class UniqueConstraint implements Constraint
> class PrimaryKeyConstrait implements Constraint
> class CheckConstraint implements Constraint
>
> と、フラットにしてしまうか?
> っていうかそもそも Constraint は interface か? など。



自分だったら、コンポジットパターンを使うよ。
複数の制約を持つ必要があるなら、Constraint から派生したコンテナクラスにConstraint 派生した各制約クラスを追加します。
S2のAOPのカスタマイザーはこのような仕組みになっています。
コンテナもひとつの制約なので、透過的に扱えるようになるはずです。なので、コンテナタイプの制約と、フラットな構造の各制約クラスがあればクラス構造も複雑にならずによいです。

以上、よろしこ。




ご意見募集。
>
> # 間違って seasar-dev に誤爆しそうになった(汗
> --
> MIYAMOTO Daisuke
> skype: cuervo1800
>
> _______________________________________________
> Jiemamy-dev mailing list
> Jiema****@lists*****
> http://lists.sourceforge.jp/mailman/listinfo/jiemamy-dev
>
-------------- next part --------------
HTML$B$NE:IU%U%!%$%k$rJ]4I$7$^$7$?(B...
Télécharger 


Jiemamy-dev メーリングリストの案内
Back to archive index