Boundary のサブクラスがコントローラーとして機能するかどうか疑問に思っていますか?
2 に答える
要するに
いいえ、できません
長い説明
Entity-Control-Boundaryのアーキテクチャ アプローチは、ユース ケースから設計を導き出すことを目的としています。
境界とコントロールの役割と責任は、このモデルでは互換性がありません。
- 境界は、アクターのグループとユースケース間の相互作用を管理します。
- コントロールは、ユース ケースの実行を管理し、関連する他のオブジェクトを調整します。
これにより、次のロバスト性制約が発生します。
- 境界はコントロールに関連付けることができますが、エンティティに関連付けてはなりません。
- コントロールは、コントロールとエンティティに関連付けることができます。
境界のサブクラスは、定義上、それ自体が境界クラスになります。同時にコントロールである可能性がある場合、これは同時にエンティティに関連付けることができますが、エンティティに関連付けてはならないことを意味しますが、これは不可能です。つまり、いいえ、これら 2 つの役割を同じクラスが引き受けることはできません。
若干のニュアンス
上記では、ECB を使用していて « controller » と書きましたが、特定の ECB の意味を持つ « control » を意味していると仮定しました。
しかし、意図的に « controller » を使用して、より一般的なクラスの責任 (責任主導の設計用語) を参照することもできます。この理解では、コントローラは、より大きなアーキテクチャ コンポーネントを考慮せずに、他のクラスを調整するだけです。特定のビジネス ロジックとは関係なく、他の境界クラス (ダイアログ テキスト ボックスやボタンなど) を調整する境界コントローラー (つまり、ダイアログ ボックス コントローラーなどの境界クラス) を持つことができます。これが可能なのは、コントローラ クラスの概念が ECB-Control クラスと直交しているためです。