Active RecordパターンとRepositoryパターンを最大限に活用しようとする次のアプローチの欠点 (たとえば、テスト容易性の観点から) は何でしょうか?
各永続オブジェクトは、save() および delete() メソッドを公開しますが、それ自体をロードしたり、同様のオブジェクトのリストをロードしたりするための静的メソッドはありません。上位層からのロードは、永続オブジェクトの静的メソッドを回避するために、リポジトリを直接呼び出すことによって行われます。
「save()」および「delete()」メソッドは単なるファサードであり、リポジトリに委譲されます。
テスト可能性は本当にこのアプローチの問題ですか? 純粋なアクティブ レコード アプローチを使用しても、データベース ロジックがビジネス ロジック全体のほんの一部を表している情報システムはありますか。
EDIT:このアプローチは、永続オブジェクトが「save()」と「delete()」を実装するAbstractPersistentObjectから継承する必要があり、ビジネスの継承を防ぎますが、ビジネスの継承を避け、構成に置き換える方が良いと読みました。デメリットじゃなくてメリットかも…?
EDIT2:おそらく、この記事は私が解決しようとしている問題をよりよく説明するでしょう:http://moleseyhill.com/blog/2009/07/13/active-record-verses-repository/