Computer >> Máy Tính >  >> Lập trình >> C#

Làm thế nào để triển khai một mẫu thiết kế Singleton trong C #?

Mô hình Singleton thuộc loại mô hình Creational

Mẫu thiết kế Singleton được sử dụng khi chúng ta cần đảm bảo rằng chỉ một đối tượng của một lớp cụ thể được Instantiated. Phiên bản duy nhất được tạo đó có trách nhiệm phối hợp các hành động trên toàn ứng dụng.

Là một phần của hướng dẫn Triển khai, chúng ta cần đảm bảo rằng chỉ có một thể hiện của lớp tồn tại bằng cách khai báo tất cả các hàm tạo của lớp là riêng tư. Ngoài ra, để kiểm soát quyền truy cập singleton, chúng ta cần cung cấp một thuộc tính tĩnh trả về một phiên bản duy nhất của đối tượng.

Ví dụ

Được niêm phong đảm bảo lớp được kế thừa và việc khởi tạo đối tượng bị hạn chế trong lớp dẫn xuất

Thuộc tính riêng được khởi tạo bằng null

đảm bảo rằng chỉ một phiên bản của đối tượng được tạo

dựa trên điều kiện rỗng

Hàm khởi tạo riêng đảm bảo rằng đối tượng được ghi chú khác với trong chính lớp đó

Phương thức công khai có thể được gọi thông qua cá thể singleton

public sealed class Singleton {
   private static int counter = 0;
   private static Singleton instance = null;
   public static Singleton GetInstance {
      get {
         if (instance == null)
         instance = new Singleton();
         return instance;
      }
   }
   private Singleton() {
      counter++;
      Console.WriteLine("Counter Value " + counter.ToString());
   }
   public void PrintDetails(string message) {
      Console.WriteLine(message);
   }
}
class Program {
   static void Main() {
      Singleton fromFacebook = Singleton.GetInstance;
      fromFacebook.PrintDetails("From Facebook");
      Singleton fromTwitter = Singleton.GetInstance;
      fromTwitter.PrintDetails("From Twitter");
      Console.ReadLine();
   }
}

Đầu ra

Counter Value 1
From Facebook
From Twitter