单例、 1.单例模式 2.工厂方法模式 

单例模式通用代码
public class Singleton {
private static final Singleton singleton = new Singleton();
//限制产生多个对象
  private Singleton()

     {
  }

  //通过该方法获得实例对象
  public static Singleton getSingleton()

  {
    return singleton;
  }

  //类中其他方法, 尽量是static
  public static void doSomething()

  {
  }
}

单例模式的使用场景

在一个系统中, 要求一个类有且仅有一个对象, 如果出现多个对象就会出现“不良反应”, 可以采用单例模式, 具体的场景如下:  

  ● 要求生成唯一序列号的环境;  

  ● 在整个项目中需要一个共享访问点或共享数据, 例如一个Web页面上的计数器, 可以不用把每次刷新都记录到数据库中, 使用单例模式保持计数器的值, 并确保是线程安全的;  

  ● 创建一个对象需要消耗的资源过多, 如要访问IO和数据库等资源;  

  ● 需要定义大量的静态常量和静态方法( 如工具类) 的环境, 可以采用单例模式(当然, 也可以直接声明为static的方式) 。

2.工厂方法模式 

工厂方法模式使用的频率非常高, 在我们日常的开发中总能见到它的身影。 其定义为:Define an interface for creating an object,but let subclasses decide which class to instantiate.Factory Method lets a class defer instantiation to subclasses.( 定义一个用于创建对象的接口, 让子类决定实例化哪一个类。 工厂方法使一个类的实例化延迟到其子类。 )