静态工厂方法就是一个简单的静态方法,返回类的实例.区别在于:
A.静态工厂方法可以具有自己的命名;
B.静态可以不必每次必须创建新的对象;
C.与构造函数不同,它可以返回原返回类型的子类型对象(增加灵活性);
单例类用最简单的解释来说,就是只实例化一次的类.用于概念上唯一的地方.

解决方案 »

  1.   

    2.单例类一般只有一个私有的构造方法,它的实例由一个共有的静态的返回本实例的方法提供,比如像java.lang.Runtime,通过Runtime.getRuntime()获得其实例
      

  2.   

    静态工厂是一个Static方法,从字面意思上看,既然它是一个工厂,也就意味者它管理着很多对象。由于我们在现实的项目中往往设计很多对象,但是又不想把更多的细节暴露在开发人员或者使用者的面前,比如说构造函数,各个对象的内部方法。假如说这些对象又可以进一步抽象为同一种类型的话,我们就可以通过一个对象工厂来封装这些对象,这些对象的创建任务由这个对象工厂来实现。这样用户只面对对象工厂,而不用将注意力放在内部对象的细节上。比如EJB,COM+的实现都是基于这种模式。如果想进一步了解,可以参照相关的“设计模式”单例类,简单的说就是在整个应用程序周期中,只有该类的一个实例存在。这样的好处就是避免了一些资源的多进程访问,比如说你要操作日志文件,内存分配,垃圾收集,类运行时等,它们都不允许有多个类进行同时访问。这个时候你可以考虑使用单例类。具体情参照相关的“设计模式”
      

  3.   

    可以控制对象生成的个数,参见 COM类工厂