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