GRASP Creator は Dependency Injection と完全に矛盾していますか?
そうでない場合は、その理由を説明してください。
GRASP Creator は Dependency Injection と完全に矛盾していますか?
そうでない場合は、その理由を説明してください。
矛盾ではありませんが、どちらも異なる状況で使用されます。
ドメイン レイヤーで Creator を使用し、アプリケーション サービス レイヤー (プラットフォームに応じてロギング サービス、コントローラー ファクトリ、認証サービスなど) およびドメイン サービス / データ アクセス レイヤー (リポジトリ、データ マッパー、データ ゲートウェイなど)。
この区別は、「UML とパターンの適用」(GRASP パターン/原則が定義されている場所) でラーマンによって明確にされており、再利用されたインスタンスの再利用がパフォーマンスやファミリ内のどのクラスが必要かについての決定にとって重要である場合、作成者は禁忌であると述べています。インスタンス化されます。このような場合、インスタンス化は Factory、Abstract Factory、または DI に任せた方がよいでしょう。