單例的基礎上升級了一下,把物件從記憶體層面復制了一下,然后回傳,是個新物件,但是又不是new出來的,
/// <summary>/// 原型模式:單例的基礎上升級了一下,把物件從記憶體層面復制了一下,然后回傳/// 是個新物件,但是又不是new出來的/// </summary>public class Prototype{ /// <summary> /// 建構式耗時耗資源 /// </summary> private Prototype() { long lResult = 0; for (int i = 0; i < 10000000; i++) { lResult += i; } Thread.Sleep(2000); Console.WriteLine("{0}被構造一次", this.GetType().Name); } /// <summary> /// 3 全域唯一靜態 重用這個變數 /// </summary> private static volatile Prototype _Prototype = new Prototype(); /// <summary> /// 2 公開的靜態方法提供物件實體 /// </summary> /// <returns></returns> public static Prototype CreateInstance() { Prototype prototype = (Prototype)_Prototype.MemberwiseClone(); return prototype; } //既然是單例,大家用的是同一個物件,用的是同一個方法,那還會并發嗎 還有執行緒安全問題嗎? public int iTotal = 0; public void Show() { this.iTotal++; }}
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/46481.html
標籤:設計模式
上一篇:設計模式之單例模式
下一篇:設計模式-抽象工廠
