单态

来源:互联网 发布:淘宝网官网琅士力 编辑:程序博客网 时间:2024/04/26 03:57

Singleton.java

 

 

 import java.util.HashMap;
import java.util.Map;


public class Singleton {
 
 private static Map map = new HashMap();
 
 private Singleton() {}
 
 public static synchronized Object getInstance(Class className) {
  Object object = null;
  object = map.get(className);
  //System.out.println(object);
  if(object == null) {
   //System.out.println("new");
   try {
    object = className.newInstance();
    map.put(className, object);
   } catch (InstantiationException e) {
    // TODO Auto-generated catch block
    e.printStackTrace();
   } catch (IllegalAccessException e) {
    // TODO Auto-generated catch block
    e.printStackTrace();
   }
  }
  return object;
 }
 
}

 

 

 

Work.java

 

public class Work {

 public void work() {
  System.out.println("Hello!");
 }
}

 

 

Main.java

 

 


public class Main {

 /**
  * @param args
  */
 public static void main(String[] args) {
  // TODO Auto-generated method stub
  
  Work work = null;
  
  work = (Work) Singleton.getInstance(Work.class);
  
  work.work();
  
  work = (Work) Singleton.getInstance(Work.class);
  
  work.work();
  
  ThreadFactory.create(WorkService.class);
  
  try {
   Thread.sleep(2);
  } catch (InterruptedException e) {
   // TODO Auto-generated catch block
   e.printStackTrace();
  }
  
  System.out.println("Hello, work!  2 ");
 }

}

原创粉丝点击