.net設計模式 (原型模式)學習筆記
阿新 • • 發佈:2018-12-20
運用設計模式只是為了解決一類問題的,當解決掉當前一類問題,通常會在解決這個問題時候 帶來其他問題 合理應用揚長避短
建立型模式:
.net設計模式 (原型模式)學習筆記
概念: 和單例模式相比較。在對單例模式 引用的時候 實際上 引用的是 同一個物件。 有些時候 我們想引用不同的物件,又想 快速的建立物件。這個時候就可以 使用 原型模式;在 .net 中 成為 淺拷貝。 要注意的是淺拷貝 引用型別還是 引用 同一塊地址
/// <summary> /// 單例 /// </summary> public class Singleton { private Singleton() { } /// <summary> /// 靜態變數: 會在類初始化之前呼叫,而且只會呼叫一次 /// </summary> private static Singleton singleton = new Singleton(); public static Singleton GetSingleton() { return singleton; } public static Singleton GetSingletonProto() { return (Singleton)singleton.MemberwiseClone(); } } class Program { static void Main(string[] args) { Singleton singletonA = Singleton.GetSingleton(); //淺拷貝 不同於 Singleton.GetSingleton(); //值型別是全新的訪問地址, 但對於引用型別來講 還是用一塊 地址 // //如果想要將引用型別的 地址 也是新的, 就需要用到 深拷貝 Singleton singletonB = Singleton.GetSingletonProto(); } }