কোডটির যথাযথ প্রয়োগের ক্ষেত্রে আমার ধারণাগত সমস্যা রয়েছে যা মনে হয় একাধিক উত্তরাধিকারের প্রয়োজন, এটি অনেক ওও ভাষায় সমস্যা হবে না তবে প্রকল্পটি অ্যান্ড্রয়েডের জন্য হওয়ায় একাধিক জাতীয় কিছু নেই extends
।
আমি অনেক কাজ গুচ্ছ, এই ধরনের সহজ বিভিন্ন বেস ক্লাস, থেকে উদ্ভূত আছে Activity
, TabActivity
, ListActivity
, ExpandableListActivity
, ইত্যাদি এছাড়াও আমি কিছু কোড টুকরা যা আমি মধ্যে জায়গা দরকার onStart
, onStop
, onSaveInstanceState
, onRestoreInstanceState
এবং অন্যান্য মান ঘটনা সব কার্যক্রম হ্যান্ডেলার।
আমার যদি সমস্ত ক্রিয়াকলাপের জন্য একক বেস শ্রেণি থাকে তবে আমি কোডটি একটি বিশেষ মধ্যবর্তী ডেরিভড শ্রেণিতে স্থাপন করতাম এবং তারপরে এটি প্রসারিত সমস্ত ক্রিয়াকলাপ তৈরি করতাম। দুর্ভাগ্যক্রমে, এটি কেস নয়, কারণ একাধিক বেস ক্লাস রয়েছে। কোডের একই অংশগুলি বেশ কয়েকটি মধ্যবর্তী ক্লাসে স্থাপন করা কোনও উপায় নয়, ইমো।
আর একটি পদ্ধতি হেল্পার অবজেক্ট তৈরি করা এবং উপরোক্ত ইভেন্টগুলির সমস্ত কল সহায়ককে প্রেরণ করা। তবে এর জন্য সহায়ক সহায়কটি অন্তর্ভুক্ত করা দরকার এবং সমস্ত হ্যান্ডলারগুলি সমস্ত মধ্যবর্তী শ্রেণিতে পুনরায় সংজ্ঞায়িত করা উচিত। সুতরাং এখানে প্রথম পদ্ধতির খুব বেশি পার্থক্য নেই - এখনও প্রচুর কোড সদৃশ।
যদি উইন্ডোজের অধীনে একই রকম পরিস্থিতি দেখা দেয় তবে আমি সাবক্লাস বেস ক্লাস ( Activity
অ্যান্ড্রয়েডের ক্লাসের সাথে "অনুরূপ" এমন কিছু) থাকতাম এবং সেখানে যথাযথ বার্তাগুলি আটকে থাকতাম (একক জায়গায়)।
এর জন্য জাভা / অ্যান্ড্রয়েডে কী করা যায়? আমি জানি যে জাভা উপকরণ ( কিছু বাস্তব উদাহরণ সহ ) এর মতো আকর্ষণীয় সরঞ্জাম রয়েছে তবে আমি জাভা গুরু নই এবং এই নির্দিষ্ট ক্ষেত্রে এটি চেষ্টা করার মতো কিনা তা নিশ্চিত নই।
আমি যদি অন্য কিছু শালীন সমাধান মিস করি তবে দয়া করে তাদের উল্লেখ করুন।
হালনাগাদ:
অ্যান্ড্রয়েডে যারা একই সমস্যা সমাধানে আগ্রহী হতে পারে তাদের জন্য আমি একটি সহজ কাজ খুঁজে পেয়েছি। অস্তিত্ব আবেদন বর্গ, যাতে অন্যান্য বিষয়গুলিও, ইন্টারফেস মধ্যে উপলব্ধ ActivityLifecycleCallbacks । এটি আমাদের ক্রিয়াকলাপের জন্য গুরুত্বপূর্ণ ইভেন্টগুলিতে কিছুটা মূল্য বা সংযোজন করার অনুমতি দেওয়ার প্রয়োজন হুবহু কাজ করে। এই পদ্ধতির একমাত্র ত্রুটিটি এটি এপিআই স্তর 14 থেকে শুরু হয়ে পাওয়া যায় যা অনেক ক্ষেত্রেই যথেষ্ট নয় (আজ এপিআই স্তর 10 এর জন্য সমর্থন একটি সাধারণ প্রয়োজন)।
decordator pattern
। এটি একটি সর্বশেষ অবলম্বন, যা যদিও এটি প্রদর্শন করে যে আমি কী এড়াতে পছন্দ করি - কোড নকল। আমি আপনার উত্তর গ্রহণ করব, যদি অন্য কোন অন্তর্নিহিত ধারণা ভাল হয় না। "মধ্যস্থতাকারীদের" কোডটি সাধারণীকরণের জন্য আমি কি জেনারিকগুলি ব্যবহার করতে পারি?