কেবল কোনও একক ক্রিয়াকলাপটি পুনরায় ব্যবহার করার জন্য কোনও শ্রেণি বাড়ানো কি যুক্তিসঙ্গত অনুশীলন?


10

আমি একটি ওয়ার্ডপ্রেস সাইটের জন্য পোস্ট ফিল্টারগুলির একটি পরিসীমা বিকাশ করছি এবং আমি প্রথম 4 একটি একক শ্রেণীর সাথে তৈরি করেছি।

চূড়ান্ত দুটি তাদের ক্লাসে কেবল একটি একক ফাংশন (চূড়ান্ত লিঙ্কগুলি উত্পাদন করার জন্য ফাংশন) ভাগ করে নেওয়ার সুযোগে যথেষ্ট আলাদা।

এই কার্যকারিতাটি পাওয়ার জন্য মূল ক্লাসটি প্রসারিত করার জন্য, এই উদাহরণে বা কোনও অনুরূপ অনুমানমূলক উদাহরণগুলির মধ্যে কি যুক্তিসঙ্গত, বা আরও ভাল উপায় আছে?


আমি এই প্রশ্ন বুঝতে পারি না। ক্লাস দিয়ে জিনিস তৈরির অর্থ কী? এই ক্লাসগুলি কি কিছু থেকে উত্তরাধিকার সূত্রে প্রাপ্ত? শ্রেণিবিন্যাসের শীর্ষে শ্রেণিটি কি ইতিমধ্যে সাধারণ কাজটি করবে না?
ডেভিড থর্নলি

উত্তর:


19

না, যদি দুটি শ্রেণি এতটা পৃথক হয় যে তারা কেবল একটি ফাংশন ভাগ করে নেয়, তবে সম্ভাবনাগুলি তারা পারস্পরিক বিনিময়যোগ্য নয় - এবং তাই তারা লিসকোভ বিকল্প নীতিটি ভঙ্গ করে ।

যদি এটি করা যুক্তিসঙ্গত হয় তবে কেবলমাত্র একটি বেস শ্রেণি থেকে প্রাপ্ত। কোডের একক অংশ ভাগ করে নেওয়া উত্তরাধিকারের জন্য খুব কমই যুক্তিযুক্ত :)

এই বিশেষ উদাহরণে মনে হচ্ছে আপনি পরিবর্তে রচনার মাধ্যমে সেই ফাংশনটি পুনরায় ব্যবহার করতে চান ...


3
উত্তরাধিকারের চেয়ে রচনা পছন্দ! বেশিরভাগ ক্ষেত্রে এটি আপনাকে দীর্ঘকালীন জীবন সহজ করে তুলবে।
ট্র্যাভিস

রচনা FTW!
back2dos

আমার উত্তরটি লক্ষ্য করার মতো বিষয়টি মূলত @ সারদাথ্রিয়নের মতোই, আমি কেবলমাত্র সম্পর্কিত নীতিগুলির সাথে লিঙ্ক করেছি :)
ম্যাটডাভি

7

যদি কোনও শ্রেণীর বর্ণনায় " এবং " শব্দটি থাকে তবে এটি দুটি (বা আরও) শ্রেণিতে বিভক্ত হওয়া উচিত। জিনিসগুলির চেহারা অনুসারে, আপনি সেই ফাংশনটিকে অন্য শ্রেণীর সদস্য করতে পারেন যা আপনার বর্তমানে থাকা বিভাগগুলির দ্বারা রেফারেন্স করা হয়েছে।

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.