欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

java 單例模式和工廠模式實(shí)例詳解

 更新時(shí)間:2017年04月13日 16:33:48   作者:wuxiao5570  
這篇文章主要介紹了Java設(shè)計(jì)模式編程中的單例模式和簡(jiǎn)單工廠模式以及實(shí)例,使用設(shè)計(jì)模式編寫(xiě)代碼有利于團(tuán)隊(duì)協(xié)作時(shí)程序的維護(hù),需要的朋友可以參考下

單例模式根據(jù)實(shí)例化對(duì)象時(shí)機(jī)的不同分為兩種:一種是餓漢式單例,一種是懶漢式單例。

私有的構(gòu)造方法

指向自己實(shí)例的私有靜態(tài)引用

以自己實(shí)例為返回值的靜態(tài)的公有的方法

餓漢式單例

  public class Singleton {
    private static Singleton singleton = new Singleton();
    private Singleton(){}
    public static Singleton getInstance(){
      return singleton;
    }
  }

懶漢式單例

  public class Singleton {
    private static Singleton singleton;
    private Singleton(){}
    public static synchronized Singleton getInstance(){
      if(singleton==null){
        singleton = new Singleton();
      }
      return singleton;
    }
  }

工廠方法模式代碼

 interface IProduct {
    public void productMethod();
  }
  class Product implements IProduct {
    public void productMethod() {
      System.out.println("產(chǎn)品");
    }
  }
  interface IFactory {
    public IProduct createProduct();
  }
  class Factory implements IFactory {
    public IProduct createProduct() {
      return new Product();
    }
  }
  public class Client {
    public static void main(String[] args) {
      IFactory factory = new Factory();
      IProduct prodect = factory.createProduct();
      prodect.productMethod();
    }
  }

抽象工廠模式代碼

  interface IProduct1 {
    public void show();
  }
  interface IProduct2 {
    public void show();
  }
  class Product1 implements IProduct1 {
    public void show() {
      System.out.println("這是1型產(chǎn)品");
    }
  }
  class Product2 implements IProduct2 {
    public void show() {
      System.out.println("這是2型產(chǎn)品");
    }
  }
  interface IFactory {
    public IProduct1 createProduct1();
    public IProduct2 createProduct2();
  }
  class Factory implements IFactory{
    public IProduct1 createProduct1() {
      return new Product1();
    }
    public IProduct2 createProduct2() {
      return new Product2();
    }
  }
  public class Client {
    public static void main(String[] args){
      IFactory factory = new Factory();
      factory.createProduct1().show();
      factory.createProduct2().show();
    }
  }

希望本文對(duì)各位朋友有所幫助

相關(guān)文章

最新評(píng)論