はじめに
javaではnewを使うことで簡単にオブジェクトを生成できるが
プログラムの規模が大きくなると、オブジェクトの生成から消滅までの管理が複雑化してしまう
オブジェクトのライフサイクルを適切に管理するには以下のようなやり方がある
・変数のスコープに注意して不要に長い寿命のオブジェクトを減らす
・寿命の長いオブジェクトと短いオブジェクトを分離する
・ファクトリパターンなどを駆使する
・いっそフレームワークなどに隠す
このなかで一番簡単なファクトリパターンと
クラス自体を利用する方法についてまとめていく
ファクトリパターンとは
ファクトリパターンとはオブジェクト生成を一つの役割とみなしてそれを分離してしまうこと
またこれにはいくつかの技法があるが今回はファクトリメソッドに隠してしまいます
このときファクトリメソッドはstaticである必要があります
またファクトリメソッドを使うとするなら、コンストラクタは外部から参照出来ないようにprivateにしておくとよい
これはファクトリメソッドを使用する以外の方法でオブジェクトが生成されるのを防ぐため
実際のコード
これらを踏まえてファクトリパターンを使ったコードを実際に書いてみる
public class Test{ //コンストラクタを外部から参照できないようにする private Test(){ } //ファクトリメソッド static Test getInstance(){ /* * Test test = new Test(); * return test;でもいい */ return new Test(); } }