উত্তরাধিকার বাস্তবায়ন সম্পর্কে আমার বর্তমান উপলব্ধি হ'ল যদি কোনও আইএস-এ হয় তবে কেবল একটি শ্রেণি বাড়ানো উচিত সম্পর্ক উপস্থিত । যদি অভিভাবক শ্রেণীর আরও বিভিন্ন নির্দিষ্ট কার্যকারিতা সহ আরও নির্দিষ্ট শিশু প্রকার থাকতে পারে তবে পিতামাতার বিমূর্ত সাধারণ উপাদানগুলি ভাগ করে দেবে।
আমার জাভা প্রফেসর আমাদের যা করার জন্য সুপারিশ করছেন সে কারণে আমি সেই বোঝার বিষয়ে প্রশ্ন করছি। তিনি সুপারিশ করেছেন যে একটি JSwingআবেদনের জন্য আমরা ক্লাসে তৈরি করছি
এক সব প্রসারিত করা উচিত JSwingশ্রেণীর ( JFrame, JButton,JTextBox পৃথক কাস্টম শ্রেণীতে, ইত্যাদি) এবং (কম্পোনেন্ট আকার, উপাদান লেবেল, ইত্যাদি) তাদের মধ্যে গুই সংশ্লিষ্ট স্বনির্ধারণ উল্লেখ
এতদূর ভাল, তবে তিনি আরও পরামর্শ দিয়ে চলেছেন যে প্রতিটি জেবাটনের নিজস্ব কাস্টম বর্ধিত শ্রেণি হওয়া উচিত যদিও একমাত্র স্বতন্ত্র ফ্যাক্টরটি তাদের লেবেল।
উদাহরণস্বরূপ, জিইউআইতে যদি দুটি বোতাম থাকে তবে ঠিক আছে এবং বাতিল করুন । তিনি সুপারিশ করেন যে সেগুলি নীচের মতো বাড়ানো উচিত:
class OkayButton extends JButton{
MainUI mui;
public OkayButton(MainUI mui) {
setSize(80,60);
setText("Okay");
this.mui = mui;
mui.add(this);
}
}
class CancelButton extends JButton{
MainUI mui;
public CancelButton(MainUI mui) {
setSize(80,60);
setText("Cancel");
this.mui = mui;
mui.add(this);
}
}
আপনি দেখতে পাচ্ছেন একমাত্র পার্থক্যটি হল setTextফাংশনটিতে in
তাহলে কি এই স্ট্যান্ডার্ড অনুশীলন?
বিটিডব্লিউ, যে কোর্সে এটি নিয়ে আলোচনা করা হয়েছিল তাকে জাভাতে সেরা প্রোগ্রামিং অনুশীলন বলা হয়
[অধ্যাপকের কাছ থেকে জবাব দিন]
তাই আমি প্রফেসরের সাথে সমস্যাটি নিয়ে আলোচনা করেছি এবং উত্তরে বর্ণিত সমস্ত পয়েন্ট উত্থাপন করেছি।
তার সমর্থনযোগ্যতা হ'ল জিইউআই ডিজাইনের মান অনুসরণ করার সময় সাবক্লাসিং পুনরায় ব্যবহারযোগ্য কোড সরবরাহ করে। উদাহরণস্বরূপ, যদি বিকাশকারী একটি উইন্ডোতে কাস্টম Okayএবং Cancelবোতাম ব্যবহার করেন , তবে অন্যান্য উইন্ডোতেও একই বোতামগুলি রাখা সহজ হবে।
আমার ধারণা করার কারণটি আমি পেয়েছি তবে এখনও এটি কেবল উত্তরাধিকার শোষণ করে কোডকে ভঙ্গুর করে তুলছে।
পরে, কোনও বিকাশকারী দুর্ঘটনাক্রমে setTextএকটি Okayবোতামে কল করতে এবং এটি পরিবর্তন করতে পারে। সাবক্লাস কেবল সেক্ষেত্রে উপদ্রব হয়ে যায়।
JButtonআপনি এটির নির্মাণকারীর মধ্যে সর্বজনীন পদ্ধতিগুলি প্রসারিত এবং কল করতে পারেন, যখন আপনি কেবলJButtonশ্রেণীর বাইরে এই জাতীয় পাবলিক পদ্ধতিগুলি তৈরি করতে এবং কল করতে পারেন ?