আপনার সমস্যা সমাধানের জন্য প্রচুর বৈধ পন্থা রয়েছে। বেসাইল স্টারিনকিভিচ একটি "শূন্য-আমলাতন্ত্র" পদ্ধতির প্রস্তাব দিয়েছিল যা আপনাকে একটি সহজ ইন্টারফেস দিয়ে যায় এবং যথাযথ ইন্টারফেসটি ব্যবহার করে প্রোগ্রামারের উপর নির্ভর করে। যদিও আমি এই পদ্ধতির পছন্দ করি, আমি অন্য একটি উপস্থাপন করব যার মধ্যে আরও বেশি ইনিংআনারিং রয়েছে তবে সংকলকটিকে কিছু ত্রুটি ধরার অনুমতি দেয়।
বিভিন্ন রাজ্যের চিহ্নিত আপনার ডিভাইস, হতে পারে যেমন Uninitialised
,
Started
, Configured
ইত্যাদি। তালিকাটি সীমাবদ্ধ করতে হবে ¹
প্রতিটি রাজ্যের জন্য, struct
সেই রাজ্যের সাথে সম্পর্কিত প্রয়োজনীয় অতিরিক্ত তথ্য হোল্ডিং সংজ্ঞা দিন DeviceUninitialised
,
DeviceStarted
ইত্যাদি।
সমস্ত চিকিত্সা একটি সামগ্রীতে প্যাক করুন DeviceStrategy
যেখানে পদ্ধতিগুলি ইনপুট এবং আউটপুট হিসাবে 2 হিসাবে সংজ্ঞায়িত স্ট্রাকচার ব্যবহার করে। সুতরাং, আপনার একটি DeviceStarted DeviceStrategy::start (DeviceUninitalised dev)
পদ্ধতি থাকতে পারে (বা আপনার প্রকল্পের কনভেনশন অনুসারে সমতুল্য যাই হোক না কেন)।
এই পদ্ধতির সাথে, একটি বৈধ প্রোগ্রাম অবশ্যই পদ্ধতি প্রোটোটাইপগুলি দ্বারা প্রয়োগ করা অনুক্রমের কিছু পদ্ধতি কল করতে হবে।
বিভিন্ন রাজ্যগুলি সম্পর্কহীন বস্তু, এটি প্রতিস্থাপন নীতিটির কারণে। যদি এই কাঠামোগুলি একটি সাধারণ পূর্বপুরুষকে ভাগ করে নেওয়া আপনার পক্ষে দরকারী হয় তবে মনে রাখবেন যে কোনও বিমূর্ত শ্রেণীর উদাহরণের জন্য কংক্রিটের ধরণটি পুনরুদ্ধার করতে দর্শনার্থী প্যাটার্নটি ব্যবহার করা যেতে পারে।
আমি ৩. এ বর্ণিত হয়েছি এমন একটি অনন্য DeviceStrategy
শ্রেণি, এমন পরিস্থিতিতে রয়েছে যেখানে আপনি বেশ কয়েকটি ক্লাস জুড়ে সরবরাহ করে এমন কার্যকারিতা বিভক্ত করতে পারেন।
তাদের সংক্ষিপ্তসার হিসাবে, আমি বর্ণিত ডিজাইনের মূল পয়েন্টগুলি হ'ল:
বিকল্প নীতিমালার কারণে, ডিভাইস রাজ্যের প্রতিনিধিত্বকারী বস্তুর আলাদা হওয়া উচিত এবং বিশেষ উত্তরাধিকারের সম্পর্ক থাকা উচিত নয় have
ডিভাইসগুলি নিজেরাই উপস্থাপনকারী বস্তুগুলির পরিবর্তে স্টার্টিজি অবজেক্টগুলিতে ডিভাইস চিকিত্সা প্যাক করুন, যাতে প্রতিটি ডিভাইস বা ডিভাইস রাষ্ট্র কেবল নিজেরাই দেখে এবং কৌশলটি তাদের সমস্তটি দেখে এবং তাদের মধ্যে সম্ভাব্য রূপান্তরগুলি প্রকাশ করে।
আমি শপথ করব আমি একবার এই লাইনগুলি অনুসরণ করে একটি টেলনেট ক্লায়েন্টের প্রয়োগের বিবরণ দেখেছি, তবে আমি এটি আবার খুঁজে পাচ্ছি না। এটি একটি খুব দরকারী রেফারেন্স হত!
।: এর জন্য, হয় আপনার স্বজ্ঞাততা অনুসরণ করুন বা "মেথড ~ মেথড ₂ আইএফএফের সম্পর্কের জন্য আপনার প্রকৃত বাস্তবায়নে পদ্ধতির সমতুল্য ক্লাসগুলি সন্ধান করুন। আপনার একই ডিভাইসে এটি ব্যবহার করার জন্য এটি বৈধ ”- ধরে নিলে আপনার ডিভাইসে সমস্ত চিকিত্সা আবদ্ধ করে আপনার একটি বড় অবজেক্ট রয়েছে। তালিকা রাষ্ট্রের উভয় পদ্ধতিই দুর্দান্ত ফলাফল দেয়।
discovery
বাhandshake
?