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