一年ちょい前に自分で書いたコードがわからない、、、

public class TCPServer implements Runnable {

	ServerSocket server;

	public static void main(String[] args) {
		//サーバのインスタンスを取得、実行
		TCPServer server = TCPServer.getInstance();
		server.run();
	}
	private static TCPServer instance; //サーバのインスタンス
	//サーバのインスタンスが未生成の場合、サーバのインスタンスを返す
	public static TCPServer getInstance() {
		if(instance == null) {
			instance = new TCPServer();
		}
		return instance;
	}
    /* いろいろ略 */
}

なんで、getInstance()とかいうメソッドつくらないといけないんだ?
でも、何かの本でこんなやり方を読んだような記憶がおぼろげに、、、

家に帰ったら外部記憶(本棚)にあたってみよう。
にしても変数名が分かりにくい

追記ちょっとググってみた

http://www.atmarkit.co.jp/fjava/javatips/075java007.html
えと、Singletonパターンのつもりなのか?そうなのか?
でも、

	public TCPServer() {
		clientList = new ArrayList<ChatClient>();
	}

コンストラクタがpublicですからっ!
意味ないじゃん。


そういえば結城先生のデザインパターンの本を読んでいた時期があったな〜。
またしっかり読もう。