程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> 關於C語言 >> 使用C# 2.0泛型實現單例模式重用(1)

使用C# 2.0泛型實現單例模式重用(1)

編輯:關於C語言

介紹

很多有著不同開發背景得人都會比較熟悉單例模式。他們會發現每次他們要創 建一個不同的單例類的時候,都不得不寫同樣得代碼。使用新的C# 2.0的泛型, 可以實現只寫一次同樣得代碼。

使用 C# 2.0 泛型來完成單例模式的重用

使用 C# 2.0 的泛型,使得實現我所說的"單例提供者"成為可能。 這是一個可用來創建單例類實例確不需要為每個特定的類重寫單例模式代碼的可 重用的類。這樣分離出單例結構的代碼,將有利於保持按單例模式使用類或不按 單例模式使用類的靈活性。

public sealed class Singleton
{
 Singleton()
 {}
 public static Singleton Instance
 {
  get
  {
   return SingletonCreator.instance;
  }
 }
 class SingletonCreator
 {
  // Explicit static constructor to tell C# compiler
  // not to mark type as beforefIEldinit
  static Nested()
  {}
  internal static readonly Singleton instance = new Singleton();
 }
}

基於對泛型的了解,你可以發現沒有理由不在這段代碼裡替換類型參數為泛型 裡典型的'T'。如果這樣做,這段代碼就變成下面這樣。

public class SingletonProvider<T> where T : new()
{
 SingletonProvider() { }
 public static T Instance
 {
  get { return SingletonCreator.instance; }
 }
 class SingletonCreator
 {
  static SingletonCreator() { }
  internal static readonly T instance = new T();
 }
}

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