GOF from wiki : change Singleton.java add some implementations, add empty classes for prototype ,and abstract factory Patterns