DDD(ドメイン駆動設計)のValue Objectパターンは「不変オブジェクト」であるということが強調されているが、ドメインモデリングの観点からみたら、むしろプリミティブ型を使いたくなる場面であえてユーザー定義クラスを使うということこそが本当に重要な部分なのではないか、と思ったので、そのことを書いてみる。 例題 100円の商品を三つと200円の商品を一つ買った場合の「税込みの合計金額」を計算するコードを、Value Objectパターンを使った場合と使わなかった場合で両方Javaで書いて見比べてみる。 Value Objectパターンを使わなかった場合 class Main { public static final double TAX_RATE = 0.08; public static double withTax(double price) { return price * (1