ধরা যাক আমার কাছে এমন একটি পদ্ধতি রয়েছে যা স্টাফ করে :
void doStuff(initalParams) {
...
}
এখন আমি আবিষ্কার করেছি যে "স্টাফগুলি করা" বেশ কমপেক্স অপারেশন। পদ্ধতিটি বড় হয়ে যায়, আমি এটিকে একাধিক ছোট পদ্ধতিতে বিভক্ত করি এবং শীঘ্রই আমি বুঝতে পারি যে স্টাফ করার সময় এক ধরণের রাষ্ট্র থাকা উপকারী হবে, যাতে আমাকে ছোট প্রক্রিয়ার মধ্যে কম পরামিতিগুলি পাস করতে হবে। সুতরাং, আমি এটির নিজস্ব শ্রেণিতে ফ্যাক্টর করছি:
class StuffDoer {
private someInternalState;
public Start(initalParams) {
...
}
// some private helper procedures here
...
}
এবং তারপরে আমি এটিকে এভাবে ডাকি:
new StuffDoer().Start(initialParams);
বা এই মত:
new StuffDoer(initialParams).Start();
এবং এটিই ভুল বলে মনে হচ্ছে। .NET বা জাভা API ব্যবহার করার সময়, আমি সবসময় কখনও কল করি না new SomeApiClass().Start(...);
, যা আমাকে সন্দেহ করে যে আমি এটি ভুল করছি। অবশ্যই, আমি স্টাফডোয়ারের কনস্ট্রাক্টরকে ব্যক্তিগত করতে পারি এবং একটি স্থিতিশীল সহায়ক পদ্ধতি যুক্ত করতে পারি:
public static DoStuff(initalParams) {
new StuffDoer().Start(initialParams);
}
তবে তারপরে আমার একটি শ্রেণি থাকবে যার বাহ্যিক ইন্টারফেসটি কেবলমাত্র একটি স্থিতিশীল পদ্ধতি নিয়ে গঠিত, যা অদ্ভুত মনে হয়।
সুতরাং আমার প্রশ্ন: এই ধরণের শ্রেণির জন্য একটি সু-প্রতিষ্ঠিত প্যাটার্ন রয়েছে কি?
- শুধুমাত্র একটি প্রবেশ পয়েন্ট এবং
- কোন "বাহ্যিকরূপে স্বীকৃতিযোগ্য" রাষ্ট্র নেই, অর্থাত্ one প্রবেশ দফার প্রয়োগের সময় উদাহরণস্বরূপ রাষ্ট্রের প্রয়োজন ?
bool arrayContainsSomestring = new List<string>(stringArray).Contains("somestring");
ছিলাম যখন আমার যত্ন নেওয়া সমস্ত ছিল সেই নির্দিষ্ট তথ্য এবং লিংকউ এক্সটেনশন পদ্ধতিগুলি উপলভ্য নয়। সূক্ষ্মভাবে কাজ করে এবংif()
হুপসের মাধ্যমে ঝাঁপিয়ে পড়ার দরকার ছাড়াই একটি অবস্থার সাথে ফিট করে । অবশ্যই আপনি কোনও আবর্জনা-সংগৃহীত ভাষা চান যদি আপনি এর মতো কোড লিখছেন।