অনেক ক্ষেত্রে আমি সাবলীলভাবে ইন্টারফেসের ধারণাটি পছন্দ করি তবে সি # এর সমস্ত আধুনিক বৈশিষ্ট্যগুলির সাথে (ইনিশিয়ালাইজার্স, ল্যাম্বডাস, নামযুক্ত প্যারামিটার) আমি নিজেকে ভেবে দেখি, "এটির মূল্য কি?", এবং "এটি কি সঠিক প্যাটার্নটি? ব্যবহার করবেন? "। কেউ কি আমাকে গ্রহণযোগ্য অনুশীলন না হলে কমপক্ষে নিজের অভিজ্ঞতা বা সিদ্ধান্তের ম্যাট্রিক্স ফ্লুয়েন্ট প্যাটার্নটি কখন ব্যবহার করতে পারবেন?
উপসংহার:
এখনও পর্যন্ত উত্তরগুলি থেকে থাম্বের কয়েকটি ভাল নিয়ম:
- সেটটারের তুলনায় আপনার আরও ক্রিয়া থাকাকালীন প্রবাহিত ইন্টারফেসগুলি প্রচুর পরিমাণে সহায়তা করে, যেহেতু কলগুলি প্রেক্ষাপটে পাসের মাধ্যমে আরও বেশি উপকৃত হয়।
- প্রবাহিত ইন্টারফেসগুলি এপিআইয়ের উপরে একটি স্তর হিসাবে ভাবা উচিত, কেবলমাত্র ব্যবহারের মাধ্যম নয়।
- ল্যাম্বডাস, ইনিশিয়ালাইজার এবং নামযুক্ত পরামিতিগুলির মতো আধুনিক বৈশিষ্ট্যগুলি একটি সাবলীল ইন্টারফেসটিকে আরও বন্ধুত্বপূর্ণ করতে হাত-হাতে কাজ করতে পারে।
আধুনিক বৈশিষ্ট্যগুলির দ্বারা এটির প্রয়োজনীয়তা কম অনুভব করার মাধ্যমে আমি কী বোঝাতে চাইছি তার একটি উদাহরণ এখানে। উদাহরণস্বরূপ একটি (সম্ভবত দুর্বল উদাহরণ) ধরুন ফ্লুয়েট ইন্টারফেস যা আমাকে এমন একটি কর্মচারী তৈরি করতে দেয়:
Employees.CreateNew().WithFirstName("Peter")
.WithLastName("Gibbons")
.WithManager()
.WithFirstName("Bill")
.WithLastName("Lumbergh")
.WithTitle("Manager")
.WithDepartment("Y2K");
ইনিশিয়ালাইজার সহ সহজেই লেখা যেতে পারে:
Employees.Add(new Employee()
{
FirstName = "Peter",
LastName = "Gibbons",
Manager = new Employee()
{
FirstName = "Bill",
LastName = "Lumbergh",
Title = "Manager",
Department = "Y2K"
}
});
আমি এই উদাহরণে কনস্ট্রাক্টরগুলিতে নামের পরামিতিগুলিও ব্যবহার করতে পারি।