04/12/10 18:06:02
URLリンク(d.hatena.ne.jp)
ここのkoichik氏の意見読んで思ったけど、
「振る舞い」って言葉の定義もあやふやなんだな。
俺が言ってる「振る舞い」ってのは単純なgetter/setterを除いた
一般的なメソッドも含んでるんだけど、くーすの中の人たちは
一連の業務ロジックと同列に捕らえているってこと?
さすがにメインストリームになる業務ロジックはサービスオブジェクトに
きっちりとまとめるわけだけど、その中で各エンティティに振り分けられる処理は
振り分けたいってのが、そもそもやりたい事なわけですよ。
サービスオブジェクトの可読性を上げるためにってのと、
OO設計原則(くーすではdeprecatedなんだっけ?)に従うって意味でね。
で、現状どんな場合に振分けてるかっていうと、
1.各エンティティに閉じた振る舞い
(合計値の算出とか、プロパティAとプロパティBの状態からプロパティCを設定するとか)
2.1個以上のエンティティとの関連から各プロパティを設定する場合
(エンティティAとエンティティBからエンティティCの各プロパティを設定する、とか)
「請求書オブジェクト」に「今週の通貨レート情報」を渡して請求額を算出する場合も同じかな
この場合、業務ロジック、というかビジネスルールがドメインオブジェクトに存在する事になるわけだな。
ざっと見たところこんなところ。まだまだありそうな気がするけど、今忙しいし。