1

DDDから:ソフトウェアの中心にある複雑さへの取り組み(268ページ):

実装者が計算で使用される状態を持っている場合、実装者は事実上操作の引数であるため、引数と戻り値は実装者と同じタイプである必要があります。このような操作は、そのタイプのインスタンスのセットの下で閉じられます。

a)引数戻り値、および実装者を同じタイプにすると、操作の解釈が簡単になることを理解していますが、概念的には引数戻り値が同じタイプでない方が理にかなっていると著者は示唆しています(たとえばImplType)実装者としてImplType、概念の明確さを少し犠牲にする必要があることを意味する場合でも、強制的に強制する必要がありますか?

b)私の考えでは、引数戻り値が型であることがより理にかなっている場合、オペレーションの閉鎖とその利点ImplTypeについて何も知らなくても、すでにそれらをそのように定義しているでしょう。私たちが最初にそれらを異なるタイプにしたという事実は、概念的にはそれらがタイプではない方が良いことを示しているのではないでしょうか?ImplType

ありがとうございました

4

1 に答える 1

12

オペレーションの閉鎖に関する重要な引用は次のとおりです。

適合する場合は、戻り型が引数の型と同じである演算を定義します。

動作の閉鎖は動作にいくつかの望ましい制限を確立するという考え方ですが、適切な場所に適用する必要があります。状態が操作の引数と見なされる実装者に関するステートメントは、OOPの実装方法に基づいています。舞台裏では、ランタイムは初期化されたこの引数をすべてのクラスメソッドに渡します。このように、操作を実装する各メソッドは、実装型を最初の引数として受け入れる静的メソッドと見なすことができます。このように操作を表示すると、操作に関するすべてが明示的になり、依存関係が減少します。

演算の閉鎖の概念は、特に数学、抽象代数、群論から借用されました。数学では、純粋な宣言型モデルであるため、この原則は企業開発よりもはるかに多くの用途がありますが、それでもある程度のメリットを得ることができます。

于 2013-02-05T19:48:22.440 に答える