যেহেতু একাধিক উত্তরাধিকার খারাপ (এটি উত্সটিকে আরও জটিল করে তোলে) সি # সরাসরি এ জাতীয় নিদর্শন সরবরাহ করে না। তবে কখনও কখনও এই ক্ষমতা অর্জনে সহায়ক হবে।
উদাহরণস্বরূপ আমি ইন্টারফেস এবং এর মতো তিনটি শ্রেণি ব্যবহার করে একাধিক উত্তরাধিকারের অনুপস্থিতিকে প্রয়োগ করতে সক্ষম হয়েছি:
public interface IFirst { void FirstMethod(); }
public interface ISecond { void SecondMethod(); }
public class First:IFirst
{
public void FirstMethod() { Console.WriteLine("First"); }
}
public class Second:ISecond
{
public void SecondMethod() { Console.WriteLine("Second"); }
}
public class FirstAndSecond: IFirst, ISecond
{
First first = new First();
Second second = new Second();
public void FirstMethod() { first.FirstMethod(); }
public void SecondMethod() { second.SecondMethod(); }
}
প্রতিবার আমি ইন্টারফেসগুলির মধ্যে একটিতে কোনও পদ্ধতি যুক্ত করার সাথে সাথে আমার ফার্স্টএন্ডসেকেন্ড ক্লাসটিও পরিবর্তন করা দরকার ।
একাধিক বিদ্যমান ক্লাসগুলিকে নতুন করে ক্লাসে ইনজেক্ট করার মতো উপায় কি এটি সি ++ এ সম্ভব?
কোনও ধরণের কোড জেনারেশন ব্যবহার করে কোনও সমাধান হতে পারে?
বা এটি দেখতে (কল্পিত সি # সিনট্যাক্স) এর মতো দেখাতে পারে:
public class FirstAndSecond: IFirst from First, ISecond from Second
{ }
যাতে ইন্টারফেসগুলির মধ্যে কোনওটি সংশোধন করার সময় ফার্স্টএন্ডসেকেন্ড ক্লাসটি আপডেট করার দরকার নেই।
সম্পাদনা
ব্যবহারিক উদাহরণ বিবেচনা করা আরও ভাল হবে:
আপনার একটি বিদ্যমান বর্গ রয়েছে (যেমন ITextTcpClient এর উপর ভিত্তি করে একটি পাঠ্য ভিত্তিক টিসিপি ক্লায়েন্ট) যা আপনি ইতিমধ্যে আপনার প্রকল্পের অভ্যন্তরে বিভিন্ন স্থানে ব্যবহার করেন। উইন্ডোজ ফর্ম বিকাশকারীদের পক্ষে সহজেই অ্যাক্সেসযোগ্য হওয়ার জন্য আপনি এখন আপনার শ্রেণীর একটি উপাদান তৈরি করার প্রয়োজনীয়তা অনুভব করছেন।
আমি যতদূর জানি আপনার বর্তমানে এটি করার দুটি উপায় রয়েছে:
উপাদান থেকে উত্তরাধিকার সূত্রে প্রাপ্ত নতুন ক্লাসটি লিখুন এবং টেক্সটসিপিপ্লিয়েন্ট শ্রেণীর ইন্টারফেস প্রয়োগ করে ক্লাসের নিজের উদাহরণটি ফার্স্টএন্ডসেকেন্ডের মতো দেখানো হয়েছে using
একটি নতুন শ্রেণি লিখুন যা টেক্সটটিসিপিপ্লায়েন্টের উত্তরাধিকার সূত্রে প্রাপ্ত এবং কোনওভাবে আইসিম্পোম্পোন্ট প্রয়োগ করে (বাস্তবে এটি এখনও চেষ্টা করে নি)।
উভয় ক্ষেত্রেই আপনাকে ক্লাস প্রতি নয়, পদ্ধতি অনুসারে কাজ করতে হবে। আপনি যেহেতু জানেন যে আমাদের পাঠ্য টিটিপিপিলেট এবং সমস্ত উপাদানগুলির সমস্ত পদ্ধতির প্রয়োজন হবে কেবলমাত্র এই দুটিটিকে এক শ্রেণিতে সংযুক্ত করার সবচেয়ে সহজ সমাধান হবে।
কোন্দল এড়াতে কোড কোড তৈরির মাধ্যমে এটি করা যেতে পারে যেখানে ফলাফলটি পরে পরিবর্তন করা যেতে পারে তবে হাত দিয়ে এটাই টাইপ করা পাছায় খাঁটি ব্যথা।