看到一些书上提到的常用的模式有23种,看的卵都痛了  那个单例模式怎么理解的呢?还有就是水果工厂的终极模式怎么理解的的?

解决方案 »

  1.   

    单例模式就是 
    1、类的构造函数为private,即外部程序不能通过new关键字创建对象的实例
    2、类中提供一个private static的 类变量引用 ;
    3、单例类中提供静态方法 定义为 public static 的方法获取一个类的实例 ;
    4、静态方法返回 类的引用,即 第2点中的 私有 静态变量 ;私有静态变量可以 定义的时候初始化 ,也可以 在第一次使用的时候,即调用AA.getInstanc()方法中判断 
    静态变量是否为空在初始化 如果初始化比较久的话,自己权衡了
      

  2.   

    使用单例模式可以节省资源,如GUI设计中Dialog一般设计为单例模式;
    工厂模式有简单工厂模式、工厂方法模式、抽象工厂模式,各自的适用场景不同,
    看一下各自的UML图便一目了然!!
      

  3.   

    单例目前最安全的方式就是通过内部类来实例化:
    public class SingleInstance {

    private static final class SingleInstanceHolder {
            private static SingleInstance theSingleton = new SingleInstance();        public static SingleInstance getSingleton() {
                return theSingleton;
            }        // following prevents accidental instantiation
            private SingleInstanceHolder() {
            }
        }    /**
         * @return The instance of ObjectConfig
         */
        public static SingleInstance getInstance() {
            return SingleInstance.SingleInstanceHolder.getSingleton();
        }
    }其实产品环境没有真正的单例,因为我们都是cluster多机器的,比如说,1个集群三台tomcat,每台tomcat都会有一个这个类的实例,如果你对DB做一些操作都要很小心