এটি কারও দ্বারা বলা হয় যে আপনি যদি সলিডের নীতিগুলি তাদের চূড়ান্ত দিকে নিয়ে যান তবে আপনি কার্যনির্বাহী প্রোগ্রামিংয়ে শেষ করেন । আমি এই নিবন্ধটির সাথে একমত তবে আমার মনে হয় যে কিছু শব্দার্থবিজ্ঞান ইন্টারফেস / অবজেক্ট থেকে ফাংশন / ক্লোজারে রূপান্তরে হারিয়ে গেছে এবং আমি জানতে চাই যে কীভাবে ফাংশনাল প্রোগ্রামিং ক্ষয়টি প্রশমিত করতে পারে।
নিবন্ধ থেকে:
তদুপরি, আপনি যদি ইন্টারফেস বিভাজন নীতি (আইএসপি )টিকে কঠোরভাবে প্রয়োগ করেন তবে আপনি বুঝতে পারবেন যে শিরোনাম ইন্টারফেসের চেয়ে আপনার রোল ইন্টারফেসের পক্ষে হওয়া উচিত।
আপনি যদি নিজের নকশাটিকে আরও ছোট এবং ছোট ইন্টারফেসের দিকে চালিয়ে যান, তবে আপনি শেষ পর্যন্ত চূড়ান্ত রোল ইন্টারফেসে পৌঁছে যাবেন: একটি পদ্ধতি সহ একটি ইন্টারফেস। এটা আমার অনেক কিছু ঘটে। এখানে একটি উদাহরণ:
public interface IMessageQuery
{
string Read(int id);
}
যদি আমি কোনওটির উপর নির্ভরতা নিই IMessageQuery
তবে অন্তর্ভুক্ত চুক্তির অংশটি হ'ল কলিং Read(id)
প্রদত্ত আইডি সহ একটি বার্তা সন্ধান করে এবং ফিরে আসবে।
এটির সমতুল্য কার্যক্ষম স্বাক্ষরের উপর নির্ভরতা নেওয়ার সাথে তুলনা করুন int -> string
। কোনও অতিরিক্ত সংকেত ছাড়াই, এই ফাংশনটি একটি সহজ হতে পারে ToString()
। আপনি যদি IMessageQuery.Read(int id)
একটি প্রয়োগ করে থাকেন তবে ToString()
আমি আপনাকে ইচ্ছাকৃতভাবে ধ্বংসাত্মক বলে অভিযুক্ত করতে পারি!
সুতরাং, একটি নামক ইন্টারফেসের শব্দার্থক সংরক্ষণের জন্য ক্রিয়ামূলক প্রোগ্রামাররা কী করতে পারে? উদাহরণস্বরূপ, এটি কি কোনও একক সদস্যের সাথে রেকর্ড টাইপ তৈরি করা প্রচলিত?
type MessageQuery = {
Read: int -> string
}
Without any additional clues
... সম্ভবত ডকুমেন্টেশন কেন চুক্তির অংশ ?