技術メモ

神奈川在住のITエンジニアの備忘録。おもにプログラミングやネットワーク技術について、学んだことを自分の中で整理するためにゆるゆると書いています。ちゃんと検証できていない部分もあるのでご参考程度となりますが、誰かのお役に立てれば幸いです。

完全コンストラクタパターン

オブジェクト指向の勉強をしていて、「完全コンストラクタパターン」というものが出てきた。これは、オブジェクト生成時にコンストラクタに必要な情報を全て渡して、後からそのオブジェクトの状態(フィールド変数)を変更しない設計方式。つまり、オブジェクトのもととなるクラスについては、setter は持たず、フィールド変数の定義に final が付くことになる。

このパターンのメリットは、オブジェクト生成時点からオブジェクトの状態が変更されない、つまりイミュータブルなオブジェクトになるので、どこかでそのオブジェクトが変更されている可能性を気にする必要がなくなるし、意図せずオブジェクトの状態が変更されているということも起きなくなる。

オブジェクト生成時点で必要な情報が全て揃う場合に有用だと思う。