ドメインエンティティはアプリケーションサービスの延長か
from 関数による操作とドメインエンティティの操作
ドメインエンティティは内部的な状態変化としてswapを伴う。これは手続きである。ローカル変数あるいはグローバル変数は状態であり、swapは状態を変化させるための手続きであると捉えられる。
状態を変化させるための手続きは変化そのものではないことに注意する。状態そのものは値であり、変化前の状態と変化後の状態はCalculation(暗黙的なインプットとアウトプットを伴わない)として表現することができる。あるいはイミュータブルな値オブジェクトとして。
話を戻す。swapが手続きであるなら、swapを伴うドメインエンティティのメソッドはアプリケーションサービスの延長であると考えることができるのかもしれない。であれば、さらに、ドメインエンティティのメソッドにロジックを記述するのはアプリケーションサービスにロジックを記述するのと同じことになる。ロジックはCalculation、またはイミュータブルな値オブジェクトとして表現するのがよいだろう。これはprivateなメソッドというよりは属性としてのはたらきか?
ref 関数(Calculation)かメソッドか