ドメイン駆動設計(DDD)とジェフリーパレルモの「オニオンアーキテクチャ」との関係は何ですか?
3 に答える
あなたが提供したリンクでタマネギのアーキテクチャを説明する画像を見ると、DDD が焦点を当てているのはドメイン モデルレイヤーです。
Onion はシステムのアーキテクチャ パターンですが、DDD はシステム内のオブジェクトのサブセットを設計する方法です。この 2 つは互いに存在しなくても存在できるため、どちらも他方のサブセットではありません。それらを一緒に使用する場合、全体として、DDD を使用して設計された部分はシステム全体のサブセットになります。
(おそらく悪い) アナロジーを使用するには: タマネギは家を設計するためのパターンであり、DDD は家の一部である木材を製粉する方法です。
私の意見では、それらは互いに補完し合っていますが、視点は大きく異なります。
オニオンアーキテクチャは、ドメイン/ビジネスロジックをデータアクセス、UI、サービスなどの「劣った」ものから独立させることです。オニオンアーキテクチャは、ドメインをどのように作成したかをあまり気にしません-外部の依存関係からドメインを保護することに固執します.
ドメイン駆動設計は、ドメインをモデル化する方法と、オブジェクトと呼ぶものに関するものです。つまり、各ドメイン クラスは、対象となるビジネス ドメイン (つまり、物理的/現実の世界) でそれが表すものと直接関係を持つ必要があります。そのため、Customer オブジェクトはコード内で Customer という名前にする必要があります。これは、Customer が現実世界で行うのと同じ (または可能な限り近い) ルールを持つ必要があります。