http://d.hatena.ne.jp/higayasuo/20041218#1103335335
> 問題は、ドメインオブジェクトに業務ロジックを追加するのが、
> ナイーブかどうかということです。
>
> 私の経験からするとドメインオブジェクトが複数の業務で
> 使われるということは良くある話です。
> 複数の業務の業務ロジックを1つのドメインオブジェクトに
> 持たせるということは、単一責任の原則に違反しています。
> クラスを変更する理由が複数あるためです。

複数の業務の業務ロジックをドメインオブジェクトへ
持たせたとしても、単一責任の原則には違反しません。

「業務Aの機能と業務Bの機能をドメインオブジェクトDへ持たせている」

と考えると単一責任の原則に反しているように見えますが、

「ドメインオブジェクトDの機能を使って、業務Aの機能と業務Bの機能を実現している」

と考えれば、Dの変更理由は常にひとつです。

よって、

> 問題は、ドメインオブジェクトに業務ロジックを追加するのが、
> ナイーブかどうかということです。

は「ナイーブではありません」が結論。


# ちなみに「単一責任の原則」はアジャイルソフトウェア開発の奥義に
# 載ってます。いい本ですよ。