この記事の概要
値オブジェクト(Value Object)の実装例を示します
【参考】
■値オブジェクトの利点
・例えば「名前」、「住所」というクラスを作成しますが、値に意味を持たせることができるためコーディングの誤りが減ります。
・値と処理のセットで管理できる
実装例
クラス名 | 種類 | 内容 |
Name | 値オブジェクト | ・コンストラクターで値を設定 ・バリデーションチェックメソッドを実装 |
Address | 値オブジェクト | ・コンストラクターで値を設定 ・バリデーションチェックメソッドを実装 |
Person | 値オブジェクト | ・Name、Addressの参照を持ったクラス |
Main | 呼び出しクラス | ・呼び出しクラス |
■NameとAddressクラスの説明
privateでStringに値を格納、バリデーションチェックメソッドも実装している
値は、コンストラクターで引数からセットしている
■Personクラスの説明
Nameクラスの参照と、Addressクラスの参照をコンストラクターでセットしている
■Mainクラスの説明
クラス名に意味を持たせているので、見やすくミスも少なくなります。
■実行結果