সম্প্রতি আমি আমার কিছু কোড সুরক্ষিত করার বিষয়ে ভাবছিলাম। আমি আগ্রহী যে কীভাবে নিশ্চিত করা যায় যে কোনও বস্তু কখনই সরাসরি তৈরি করা যায় না, তবে কেবলমাত্র কারখানার শ্রেণির কিছু পদ্ধতির মাধ্যমে। আমাদের বলুন যে আমার কিছু "ব্যবসায়িক অবজেক্ট" শ্রেণি রয়েছে এবং আমি নিশ্চিত করতে চাই যে এই শ্রেণীর কোনও উদাহরণের বৈধ অভ্যন্তরীণ অবস্থা থাকবে have এটি অর্জন করার জন্য আমার কোনও অবজেক্ট তৈরি করার আগে কিছুটা পরীক্ষা করা দরকার সম্ভবত এটির কনস্ট্রাক্টরে। যতক্ষণ না আমি সিদ্ধান্ত নেব আমি এই চেকটি ব্যবসার যুক্তির অংশ হতে চাই until সুতরাং, আমি কীভাবে কেবল আমার ব্যবসায়িক লজিক ক্লাসে কোনও পদ্ধতির মাধ্যমে সরাসরি কখনই ব্যবসায়ের কোনও অবজেক্ট তৈরির ব্যবস্থা করতে পারি? সি ++ এর ভাল পুরানো "বন্ধু" কীওয়ার্ডটি ব্যবহারের প্রথম প্রাকৃতিক ইচ্ছা সি # এর সাথে সংক্ষিপ্ত হবে। সুতরাং আমাদের অন্যান্য বিকল্প প্রয়োজন ...
আসুন কিছু উদাহরণ চেষ্টা করুন:
public MyBusinessObjectClass
{
public string MyProperty { get; private set; }
public MyBusinessObjectClass (string myProperty)
{
MyProperty = myProperty;
}
}
public MyBusinessLogicClass
{
public MyBusinessObjectClass CreateBusinessObject (string myProperty)
{
// Perform some check on myProperty
if (true /* check is okay */)
return new MyBusinessObjectClass (myProperty);
return null;
}
}
আপনি যতক্ষণ না মনে করেন আপনি ঠিক ততক্ষণে ইনপুটটি পরীক্ষা না করেই সরাসরি MyBusinessObjectClass উদাহরণ তৈরি করতে পারবেন এটি ঠিক আছে। আমি সেই প্রযুক্তিগত সম্ভাবনাটি পুরোপুরি বাদ দিতে চাই।
সুতরাং, সম্প্রদায় এ সম্পর্কে কী ভাববে?