程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> C++ >> C++入門知識 >> 03-05單例模式_方法調用

03-05單例模式_方法調用

編輯:C++入門知識

方法調用

考慮一種日志情形。

有多個程序會調用一個 MyLog 類來生成日志對象。

日志對象實際上向某大型設備輸出。

要求MyLog類使用單例模式,最多只能有兩個實例。調用getInstance()獲得一個實例。 每個實例有busy或free的狀態,表示是否為空閒。假如所有實例都是busy的,則返回空指針。

class MyLog
{
	private static MyLog a = new MyLog();
	private static MyLog b = new MyLog();
	private boolean busy;
	
	private MyLog(){ }
	public void use() { busy = true; }
	public void free() { busy = false; }
	
	
	public static MyLog getInstance()
	{
		if(a.busy==false) return a;
		if(b.busy==false) return b;
		return null;
	}
}

public class MyTest
{
	public static void main(String[] args)
	{
		MyLog t1 = MyLog.getInstance();
		t1.use();
		MyLog t2 = MyLog.getInstance();
		t2.use();
		MyLog t3 = MyLog.getInstance();
		System.out.println(t3);
		t2.free();
		t3 = MyLog.getInstance();
		System.out.println(t3);
		
	}
}

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