質問: fromName } function getValue() { return "$toName様 fromNameです。以下の記事を投稿しました! $postBody" } } ``` いわゆるvalue objectってPostMailBodyだったら、そのクラスがgetValueの返した値を持ってると思うのでこういうのはありなのか知りたいです。
回答: 全然ありです。 1つの値とか、複数の値とかは、ValueObject(値オブジェクト)の定義上、関係ないです。 よくある例: * 「姓」と「名」の2つのフィールドから構成される「氏名」値オブジェクト * 「郵便番号」「都道府県名」「市区町村名」などの複数のフィールドから構成される「住所」値オブジェクト なお、エンティティなのか値オブジェクトなのかは、構成要素が単一か複数かではなく、目的によります。 「住所」がいつも値オブジェクトだとは限りません。 多分、普通の通販サイトでは、住所は値オブジェクトでしょう。 きっと「ユーザ」エンティティの一構成要素ですね。 住所オブジェクト同士の同一性は関心事になりません。 ある家の夫と妻がそれぞれ注文したとして、その住所が同じであるかどうか、通販サイトの業務には関係ないので。 でも、運送会社になると事情は変わりそうです。 ある2つの住所が同じであるならば、一度に配送したいですよね。 つまり、住所の同一性が重要な関心事といえます。 となると住所(というよりこの場合は「配送先」かな)はエンティティにしたくなると思います。 > > いわゆるvalue objectってPostMailBodyだったら、そのクラスがgetValueの返した値を持ってると思う > > > この部分の意味がよく分かりませんでした・・・