ウィリアムのいたずらの、まちあるき、たべあるき

ウィリアムのいたずらが、街歩き、食べ物、音楽等の個人的見解を主に書くブログです(たま~にコンピューター関係も)

クラスに原則として、CRUDのメソッドがないとこまる

2007-06-28 14:01:56 | 開発ネタ

 きのうの、要件を出すところから運用まで、一気に書いてみるで、

(4)機能要件の抽出(クラス図のメソッド部分)

のところで、

・(2)の名詞、つまり、主語か、目的語のクラスのメソッドに、
  開発システムのアクティビティ図のアクティビティを埋める

と書いたところがありますが、メソッドを、主語と目的語のどちらに入れるかについての話。




■まず、原則、そのクラスのCRUDは、メソッドにある
これは原則論ですが、あるクラスの
  ・作成または追加(C:Create)
  ・検索(一覧)読み込みなど(R:Read)
  ・編集、更新、変更など(U:Update)
  ・削除(D:Delete)
を意味するようなメソッドは、そのクラスのメソッドとします。

たとえば、「申請書を作成する」というような場合、
申請書クラスに、作成(Create)メソッドがきます。

 ちなみに、Javaで考えると、Cはコンストラクタ、Rはgetter,
Uはsetter,Dはデコンストラクタ・・・は、Javaにはないけど、
closeとかremoveの処理に当たります。




■ただし、そうできない、しないほうがいいこともある。

 しかし、たとえば、削除をしようとしても、自分でメモリーを解放できないので、誰かから削除してもらわないといけない場合とか、Factoryみたいに、いろいろなものを生成するようなケースでは、この限りではありません。
 この場合は、主語のほうに入れたりします。

 また、たとえば、

 コンビニ(の店員)は、お客様に、ビッグ(サッカーくじ)を販売する

 という業務(なのか ^^;)があったとき、

 ビッグというクラスに「販売する」というメソッドをいれてもいいです。
 でも、コンビニのほうに、「販売する」として、引数を販売するもの(=ここではビッグ)にしたほうがいいかもしれません。
 このように、主語がある動作をすることが重要で、目的語はいろいろと入れ替えられる場合、主語にメソッドを入れたほうがいい場合もあります。




■主語等に入れる場合、目的語をどこかに指定する

 上記の、

 コンビニ(の店員)は、お客様に、ビッグ(サッカーくじ)を販売する

 という業務(なのか ^^;)があったとき、
 コンビニクラスや、お客様クラスに「販売する」に対応する
 メソッドを入れる場合、

 メソッドを「ビッグ販売」にするか、
 「販売」メソッドの引数を「ビッグ」にして、目的語をどこかに入れないといけません。そうしないと、何を販売してるのか??っていうことになります。
 「ビッグ販売」という場合は、販売しているものが一般化できない場合、逆に「販売」で、引数がビッグのときは、いろんなものの販売が一般化できる場合は考えられます。




と、この程度の注意点というか、方針はあると思います。
ただ、方針にあまり関係ないようなメソッドは、どこかに入れておけば(どこにいれていいかわかんなかったら主語、主語に入れておかしかったら目的語)OKだと思います・・・けどお(^^;)


この記事についてブログを書く
  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする
« 要件を出すところから運用ま... | トップ | 一般的な編集ソフトの作り方... »
最新の画像もっと見る

開発ネタ」カテゴリの最新記事