প্রশ্ন (1) সম্পর্কিত: জনের উত্তর সঠিক, যেহেতু তিনি প্রকাশিত বা অভ্যন্তরীণ :-) না করে 'নেস্টেড' শ্রেণিকে নিখুঁতভাবে চিহ্নিত করেছেন। আপনি এটি 'ব্যক্তিগত' যুক্ত করে সুস্পষ্টভাবে করতে পারেন:
private class Nested
প্রশ্ন (2) সম্পর্কিত: মূলত পূর্বের ক্ষেত্র এবং টাইপ সূচনা সম্পর্কে পোস্টটি আপনাকে কী বলে যে আপনার যদি কোনও স্থির নির্মাতা না থাকে, রানটাইম যে কোনও সময় এটি শুরু করতে পারে (তবে এটি ব্যবহারের আগে)। আপনার যদি স্ট্যাটিক কনস্ট্রাক্টর থাকে তবে স্ট্যাটিক কনস্ট্রাক্টরে আপনার কোড ক্ষেত্রগুলি সূচনা করতে পারে যার অর্থ রানটাইম কেবল ক্ষেত্রটি আরম্ভ করার অনুমতি দেয় যখন আপনি প্রকারটি জিজ্ঞাসা করবেন।
সুতরাং আপনি যদি রানটাইমগুলি ক্ষেত্রগুলি ব্যবহার করার আগে তাদের 'প্র্যাকটিভলি' শুরু করতে না চান তবে একটি স্ট্যাটিক কনস্ট্রাক্টর যুক্ত করুন।
যে কোনও উপায়ে, আপনি যদি সিলেটলেটগুলি বাস্তবায়ন করছেন তবে আপনি চান এটি যতটা সম্ভব অলসভাবে শুরু করতে চান এবং রানটাইমটি যখন আপনার ভেরিয়েবলটি আরম্ভ করার কথা মনে করে না - বা আপনার সম্ভবত কোনও যত্ন নেই। আপনার প্রশ্ন থেকে আমি মনে করি আপনি যত তাড়াতাড়ি সম্ভব এগুলি চান।
এটি সিঙ্গেলনের পোস্ট সম্পর্কে জনের পোস্টে মিলিত হয়েছে , যা এই প্রশ্নের অন্তর্নিহিত বিষয় আইএমও। ওহ এবং সন্দেহ :-)
আমি উল্লেখ করতে চাই যে তাঁর সিঙ্গলটন # 3, যা তিনি 'ভুল' হিসাবে চিহ্নিত করেছেন, আসলেই সঠিক (কারণ লকটি স্বয়ংক্রিয়ভাবে প্রস্থান করার সময় একটি স্মৃতি বাধা বোঝায় )। আপনি একাধিকবার উদাহরণটি ব্যবহার করার সময় এটি সিঙ্গেলটন # 2 এর চেয়েও দ্রুত হওয়া উচিত (যা একটি সিঙ্গলটনের পয়েন্টটি কম-বেশি:))) সুতরাং, যদি আপনার সত্যিই একটি অলস সিঙ্গলটন বাস্তবায়ন প্রয়োজন হয় তবে আমি সম্ভবত এটির জন্য যাব - সাধারণ কারণে যে (1) আপনার কোডটি কী চলছে তা পড়ার জন্য প্রত্যেকের পক্ষে এটি খুব স্পষ্ট এবং (২) আপনি জানেন কী হবে ব্যতিক্রম সহ।
আপনি যদি ভাবছেন: আমি সিঙ্গলটন # 6 কখনই ব্যবহার করব না কারণ এটি সহজেই ব্যতিক্রমগুলি সহ অচল এবং অনাকাঙ্ক্ষিত আচরণের দিকে নিয়ে যেতে পারে। বিশদগুলির জন্য, দেখুন: অলসটির লকিং মোড , বিশেষত এক্সিকিউশনএন্ডপাব্লিকেশন।