ওওপি-তে বিকাশ করার সময়, কখনও কখনও একটি লাইব্রেরি দ্বারা একটি ইন্টারফেস / চুক্তি দেওয়া হয় যা আপনি পরিবর্তন করতে পারবেন না। আসুন এই ইন্টারফেসটি জে।
এখন আপনার কাছে ক্লাস এ এর একটি অবজেক্ট রয়েছে যা এই ইন্টারফেসটি প্রয়োগ করে এমন বস্তু খায়। ভিতরে একটি ইন্টারফেসের সংজ্ঞা একটি ছোট অংশ প্রয়োজন। প্রকল্পের সময় কিছু বস্তু শ্রেণি আমার দ্বারা তৈরি করা হয়েছে (আসুন তাদের মধ্যে একটির ডি টাইপ করুন), তাই ইন্টারফেস জে এর অভ্যন্তরের সমস্ত কিছুর বাস্তবায়নে একটি ওভারহেড রয়েছে।
আমি ইন্টারফেস জে কার্যকারিতার একটি উপসেট বাস্তবায়ন করতে চাই, তবে এখনও পর্যন্ত আমার সমাধানগুলি আমাকে সন্তুষ্ট করে না:
- জে এর প্রতিটি বিষয় বাস্তবায়ন করে এবং তারপরে "notImplementedExferences" নিক্ষেপ করা আমার বস্তুর ব্যবহারকারীর ভুল তথ্য দেয়: মনে হয় ডি টাইপের আমার বস্তুগুলি ইন্টারফেস জে ইন্টারফেসের সাথে সামঞ্জস্যপূর্ণ, তবে তারা তা করে না - এবং আমার অবজেক্টের অন্যান্য গ্রাহকরা (যা ইন্টারফেস প্রয়োগকারী অবজেক্ট গ্রহণ করে) জে) আমার বিষয়গুলির অখণ্ডতার উপর নির্ভর করতে পারে না।
- নতুন সংজ্ঞায়িত ইন্টারফেস প্রয়োগ করা আমাকে কেবলমাত্র ইন্টারফেস জে প্রয়োগ করে এমন বস্তুগুলি ব্যবহার করতে নিষেধ করে, যদিও ইন্টারফেস জে আমার নিজের ইন্টারফেসের সাথে পুরোপুরি সামঞ্জস্যপূর্ণ।
- আমার কাস্টম অবজেক্টগুলিকে ইন্টারফেস জে প্রয়োগ করতে দেওয়া উল্লেখযোগ্য ওভারহেড তৈরি করবে, কারণ তাদের এই সমস্ত কার্যকারিতা প্রয়োজন নেই।
আমি যখন ইন্টারফেস জে পরিবর্তন করতে সক্ষম হয়েছি তখন আমি একটি "সুপার ইন্টারফেস" কে তৈরি করব যা ইন্টারফেস জে এর কার্যকারিতার এই উপসেটটি ছিল এবং ইন্টারফেস জে কে ইন্টারফেস কে থেকে উত্তরাধিকারী করে তুলবে But তবে আমি ইন্টারফেস জে পরিবর্তন করতে পারি না cannot
এই সমস্যার একটি অবজেক্ট ভিত্তিক সমাধান কী? সর্বোত্তম সমাধানটি এখনও "জাস্ট" ইন্টারফেস জে প্রয়োগ করছে? অথবা কোনও ইন্টারফেস এটিকে পরিবর্তন না করেই "সুপারক্লাস" করার ওওপি-উপায় রয়েছে?