DALとビジネスレイヤーを分離しようとしていましたが、ActiveRecordのアプローチをやめ、DataMapperのアプローチをとることにしました。 つまり、私のドメインオブジェクトは自分自身を永続化することはありません。そうすることで、私は "貧血ドメインモデル"のアンチパターンを侵略しているようです。たとえば、私のプログラムのエンティティの1つは組織です。貧血ドメインモデルを扱う
組織は、このようなものとして表されます。
class Organization {
private $orgId;
private $orgName;
// getters and setters
}
だから、基本的には、この組織は、いくつかのデータのために(Martin Fowler氏が言うように)「バッグ」として行為以外の何もしません。 PHPの世界では、それは栄光の配列以上のものではありません。それに関連する動作はゼロです。
プログラム内での動作は、ほとんどがこれらのオブジェクトとDALの間の仲介役をするOrganizationServiceのような "サービスレベル"クラスに固執しています。
PHPの潜在的なスケーリングの問題以外(私はこれらのオブジェクトに自分のデータを「詰め込む」ことを主張する理由があります)、このアプローチは完全にオフですか?
このような状況でドメインモデルをどのように処理しますか? おそらく、組織は私のドメインの一部ではないでしょうか?
ドメインモデルがDataMapperにアクセスできない場合、どのようにしてAssociateEmployeeメソッドをドメインモデルに含めることができますか? – bestattendance