কম্পিউটার

কেন সিঙ্গলটন ক্লাস সবসময় সি# এ সিল করা হয়?


সীলমোহরযুক্ত কীওয়ার্ডের অর্থ হল ক্লাসটি উত্তরাধিকার সূত্রে প্রাপ্ত করা যাবে না। কনস্ট্রাক্টরকে প্রাইভেট ঘোষণা করার অর্থ হল ক্লাসের উদাহরণ তৈরি করা যাবে না।

আপনার কাছে একটি প্রাইভেট কনস্ট্রাক্টরের সাথে একটি বেস ক্লাস থাকতে পারে, কিন্তু তারপরও সেই বেস ক্লাস থেকে উত্তরাধিকারী হতে পারেন, কিছু পাবলিক কনস্ট্রাক্টরকে সংজ্ঞায়িত করতে পারেন এবং সেই বেস ক্লাসটিকে কার্যকরভাবে ইনস্ট্যান্টিয়েট করতে পারেন৷

কনস্ট্রাক্টর উত্তরাধিকারসূত্রে প্রাপ্ত হয় না (সুতরাং প্রাপ্ত ক্লাসের সমস্ত প্রাইভেট কনস্ট্রাক্টর থাকবে না শুধুমাত্র কারণ বেস ক্লাস করে), এবং সেই প্রাপ্ত ক্লাসগুলি সর্বদা প্রথমে বেস ক্লাস কনস্ট্রাক্টরকে কল করে।

ক্লাস সিল চিহ্নিত করা কাউকে আপনার যত্ন সহকারে নির্মিত সিঙ্গেলটন ক্লাসের চারপাশে তুচ্ছভাবে কাজ করতে বাধা দেয় কারণ এটি কাউকে ক্লাস থেকে উত্তরাধিকারী হতে বাধা দেয়।

উদাহরণ

static class Program {
   static void Main(string[] args){
      Singleton fromStudent = Singleton.GetInstance;
      fromStudent.PrintDetails("From Student");

      Singleton fromEmployee = Singleton.GetInstance;
      fromEmployee.PrintDetails("From Employee");

      Console.WriteLine("-------------------------------------");

      Singleton.DerivedSingleton derivedObj = new Singleton.DerivedSingleton();
      derivedObj.PrintDetails("From Derived");
      Console.ReadLine();
   }
}
public class Singleton {
   private static int counter = 0;
   private static object obj = new object();

   private Singleton() {
      counter++;
      Console.WriteLine("Counter Value " + counter.ToString());
   }
   private static Singleton instance = null;

   public static Singleton GetInstance{
      get {
         if (instance == null)
            instance = new Singleton();
         return instance;
      }
   }

   public void PrintDetails(string message){
      Console.WriteLine(message);
   }

   public class DerivedSingleton : Singleton {
   }
}

  1. কেন 'ক্লাস' জাভাস্ক্রিপ্টে একটি সংরক্ষিত শব্দ?

  2. অ্যান্ড্রয়েডে সিঙ্গেলটন ক্লাস কীভাবে ব্যবহার করবেন?

  3. C# এ কনসোল ক্লাস

  4. কেন আমরা ক্লাস তৈরি করব?