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