首页 > 代码库 > 单例模式和工厂模式

单例模式和工厂模式

1.单例模式分为饿汉模式和懒汉模式;

  饿汉式:   

  public class Singleton{ 

       private static Singleton singleton = new Singleton ();   

       private Singleton (){} 

         public static  Singleton getInstance(){

        return singletion;

      }   

  }

  懒汉式:

  public class Singleton{ 

      private static Singleton singleton = null; 

      public static synchronized synchronized getInstance(){   

      if(singleton==null){ 

      singleton = new Singleton();   

     } 
      return singleton;   

      }   

  }

  饿汉式是线程安全的,在类创建的同时就已经创建好一个静态的对象供系统使用,以后不在改变 懒汉式如果在创建实例对象时不加上synchronized则会导致对对象的访问不是线程安全的。推荐使用第一种。

2.工厂模式分为简单工厂模式和工厂方法模式

  (1)简单工厂模式是由一个具体的类去创建其他类的实例,父类是相同的,父类是具体的。

  (2)工厂方法模式是有一个抽象的父类定义公共接口,子类负责生成具体的对象,这样做的目的是将类的实例化操作延迟到子类中完成。  

  (3)抽象工厂模式提供一个创建一系列相关或相互依赖对象的接口,而无须指定他们具体的类。它针对的是有多个产品的等级结构。而工厂方法模式针对的是一个产品的等级

结构。

单例模式和工厂模式