>>777
コンストラクタを隠蔽してファクトリメソッドを使うところまでは良し。
で、後は new 演算子をオーバーロードすればいいんじゃね?