হ্যাঁ , আমরা একটি নির্মাণকারীকে ব্যক্তিগত হিসাবে ঘোষণা করতে পারি . যদি আমরা একটি কন্সট্রাক্টরকে ব্যক্তিগত হিসাবে ঘোষণা করি তবে আমরা একটি শ্রেণীর একটি বস্তু তৈরি করতে সক্ষম নই। আমরা এই ব্যক্তিগত কনস্ট্রাক্টরটিকে সিঙ্গলটন ডিজাইন প্যাটার্নে ব্যবহার করতে পারি .
প্রাইভেট কনস্ট্রাক্টরের জন্য শর্তাবলী
- একজন প্রাইভেট কনস্ট্রাক্টর একটি ক্লাসকে সাবক্লাস করার অনুমতি দেয় না।
- একটি ব্যক্তিগত নির্মাণ আর ক্লাসের বাইরে কোনো বস্তু তৈরি করার অনুমতি দেয় না।
- যদি আমাদের ক্লাসে সব ধ্রুবক পদ্ধতি থাকে তাহলে আমরা একটি ব্যক্তিগত কনস্ট্রাক্টর ব্যবহার করতে পারি।
- যদি সমস্ত পদ্ধতি স্ট্যাটিক হয় তাহলে আমরা একটি ব্যক্তিগত কনস্ট্রাক্টর ব্যবহার করতে পারি
- যদি আমরা একটি ক্লাস বাড়ানো চেষ্টা করি যেটিতে ব্যক্তিগত কনস্ট্রাক্টর আছে কম্পাইল টাইম ত্রুটি ঘটবে .
উদাহরণ
class SingletonObject {
private SingletonObject() {
System.out.println("In a private constructor");
}
public static SingletonObject getObject() {
// we can call this constructor
if (ref == null)
ref = new SingletonObject();
return ref;
}
private static SingletonObject ref;
}
public class PrivateConstructorDemo {
public static void main(String args[]) {
SingletonObject sObj = SingletonObject.getObject();
}
} আউটপুট
In a private constructor