DDDを勉強中です。
エンティティをORM(例えばLaravelのEloquent)を利用して永続化する際、リポジトリの実装の中でエンティティをORM固有のオブジェクトに詰め替える必要があるように思うのですが、つまりエンティティにはgetterが必須ということになるのでしょうか?
PHP
1function persist($itemEntity) { 2 $item = new Item(); // ORMのオブジェクト 3 4 $item->id = $itemEntity->getId()->value(); 5 $item->name = $itemEntity->getName()->value(); 6 7 $item->save(); 8}
PHPでDDDの実装サンプルを見ると皆このようになっています。
が、iDDD本のサンプルコードを見る限り永続化メソッドにgetterは登場していないように見えます。(但しJavaはよく分かっていないのでコードの意味が理解出来ていないだけかもしれません。)
Viewに渡すようなクエリ系はCQSのクエリサービス+DTOの構造にして、getterの役割はDTO側に実装しつつ、コマンド側に徹するエンティティからはgetterを取り除いてより閉じた状態にしようと思ったのですが。

バッドをするには、ログインかつ
こちらの条件を満たす必要があります。