程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> JAVA編程 >> 關於JAVA >> java 單例模式和工廠模式實例詳解

java 單例模式和工廠模式實例詳解

編輯:關於JAVA

java 單例模式和工廠模式實例詳解。本站提示廣大學習愛好者:(java 單例模式和工廠模式實例詳解)文章只能為提供參考,不一定能成為您想要的結果。以下是java 單例模式和工廠模式實例詳解正文


單例模式根據實例化對象時機的不同分為兩種:一種是餓漢式單例,一種是懶漢式單例

私有的構造方法

指向自己實例的私有靜態引用

以自己實例為返回值的靜態的公有的方法

餓漢式單例

  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("產品");
    }
  }
  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型產品");
    }
  }
  class Product2 implements IProduct2 {
    public void show() {
      System.out.println("這是2型產品");
    }
  }
  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();
    }
  }

希望本文對各位朋友有所幫助

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved