কম্পিউটার টিউটোরিয়াল

C#-তে সিঙ্গলটন ডিজাইন প্যাটার্ন ইমপ্লিমেন্ট কীভাবে করবেন?

সিঙ্গলটন প্যাটার্ন ক্রিয়েশনাল টাইপ প্যাটার্নের অন্তর্গত।

সিঙ্গলটন ডিজাইন প্যাটার্ন তখন ব্যবহৃত হয় যখন আমাদের নিশ্চিত করতে হয় যে একটি নির্দিষ্ট ক্লাসের শুধু একটি অবজেক্ট ইনস্ট্যানশিয়েটেড হবে। সেই একক ইনস্ট্যান্সটি অ্যাপ্লিকেশন জুড়ে অ্যাকশনগুলোর সমন্বয় করার দায়িত্বে থাকে।

ইমপ্লিমেন্টেশন গাইডলাইন হিসেবে, ক্লাসের সকল কনস্ট্রাক্টর `private` ডিক্লেয়ার করে শুধু একটি ইনস্ট্যান্স অস্তিত্বে থাকবে তা নিশ্চিত করতে হবে। এছায়া, সিঙ্গলটন অ্যাক্সেস কন্ট্রোল করার জন্য একটি `static` প্রোপার্টি প্রদান করতে হবে যা অবজেক্টের একক ইনস্ট্যান্স রিটার্ন করবে।

উদাহরণ

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

ব্যাখ্যা:

  • sealed ক্লাসকে ইনহেরিট করা এবং ডেরাইভড ক্লাসে অবজেক্ট ইনস্ট্যানশিয়েশন রেস্ট্রিক্ট করা নিশ্চিত করে।
  • প্রাইভেট প্রোপার্টি `null` দিয়ে ইনিশিয়ালাইজড।
  • নাল কন্ডিশন বেসড শুধু একটি ইনস্ট্যান্স তৈরি হওয়া নিশ্চিত করে।
  • প্রাইভেট কনস্ট্রাক্টর নিশ্চিত করে যে অবজেক্ট ক্লাসের বাইরে থেকে ইনস্ট্যানশিয়েট করা যাবে না।
  • পাবলিক মেথড যেটি সিঙ্গলটন ইনস্ট্যান্সের মাধ্যমে ইনভোক করা যায়।
  1. অ্যান্ড্রয়েডে Pull-to-Refresh বাস্তবায়নের পদ্ধতি

  2. অ্যান্ড্রয়েডে সিঙ্গলটন ইনস্ট্যান্স ক্লিয়ার করা

  3. C++-এ কম্পোজিট ডিজাইন প্যাটার্ন (Composite Design Pattern)

  4. পাইথনে প্যাটার্ন প্রিন্ট করার পদ্ধতি