Computer >> คอมพิวเตอร์ >  >> การเขียนโปรแกรม >> C#

จะใช้รูปแบบการออกแบบ Singleton ใน C # ได้อย่างไร


รูปแบบซิงเกิลตันอยู่ในรูปแบบประเภทการสร้าง

รูปแบบการออกแบบ Singleton จะใช้เมื่อเราต้องการให้แน่ใจว่ามีเพียงวัตถุเดียวของคลาสใดที่สร้างอินสแตนซ์ อินสแตนซ์เดียวที่สร้างขึ้นนั้นมีหน้าที่ประสานงานการดำเนินการทั่วทั้งแอปพลิเคชัน

ในฐานะที่เป็นส่วนหนึ่งของแนวทางการนำไปใช้ เราจำเป็นต้องตรวจสอบให้แน่ใจว่ามีอินสแตนซ์ของคลาสเพียงอินสแตนซ์เดียวเท่านั้น โดยการประกาศตัวสร้างทั้งหมดของคลาสเป็นแบบส่วนตัว นอกจากนี้ เพื่อควบคุมการเข้าถึงซิงเกิลตัน เราจำเป็นต้องจัดเตรียมคุณสมบัติสแตติกที่ส่งคืนอ็อบเจ็กต์เพียงอินสแตนซ์เดียว

ตัวอย่าง

Sealed ช่วยให้คลาสได้รับการสืบทอดและการสร้างอินสแตนซ์ของวัตถุถูกจำกัดในคลาสที่ได้รับ

คุณสมบัติส่วนตัวเริ่มต้นด้วยค่า null

ตรวจสอบให้แน่ใจว่ามีการสร้างวัตถุเพียงอินสแตนซ์เดียวเท่านั้น

ตามเงื่อนไขเป็นโมฆะ

คอนสตรัคเตอร์ส่วนตัวทำให้มั่นใจว่าไม่มีอ็อบเจกต์ได้รับการทดสอบนอกเหนือจากในคลาสเอง

วิธีสาธารณะที่สามารถเรียกใช้ผ่านอินสแตนซ์เดี่ยว

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();
   }
}

ผลลัพธ์

Counter Value 1
From Facebook
From Twitter