আমি স্বীকার করি, আমি অতিরিক্ত ব্যবহার এবং এমনকি উত্তরাধিকার অপব্যবহারের পাপ করেছি। আমি আমার ওওপি কোর্সটি নেওয়ার সময় প্রথম (পাঠ্য) গেম প্রকল্পটি "দরজা" এবং "একটি দরজা" এবং "একটি দরজা সহ ঘর", "দুটি দরজা সহ কক্ষ" থেকে "লকড ডোর" এবং "আনলকড ডোর" পর্যন্ত গিয়েছিলাম এবং "ঘর" থেকে তাই।
আমি সম্প্রতি (গ্রাফিকাল) গেমটি নিয়ে কাজ করেছি, আমি ভেবেছিলাম যে আমি আমার পাঠ শিখেছি এবং উত্তরাধিকার ব্যবহারের ক্ষেত্রে একটি সীমাবদ্ধতা রেখেছি। তবে আমি লক্ষ করেছি যে সমস্যাগুলি শীঘ্রই উপস্থিত হতে শুরু করে। আমার রুট ক্লাসটি আরও বেশি করে ফোটতে শুরু করেছিল এবং আমার পাতার ক্লাসগুলি নকল কোডে পূর্ণ ছিল full
আমি ভেবেছিলাম যে আমি এখনও খারাপ কাজ করছি এবং অনলাইনে সন্ধানের পরে আমি আবিষ্কার করেছি যে এই সমস্যাটি নিয়ে আমিই একা নই। কিছু বিশদ গবেষণা শেষে আমি কীভাবে সত্তা সিস্টেমগুলি আবিষ্কার করে শেষ করেছি (পড়ুন: গুগলফু)
যখন আমি এটি পড়তে শুরু করি, আমি দেখতে সক্ষম হয়েছি যে উপাদানগুলির সাথে traditionalতিহ্যবাহী ওওপি হায়ারার্কির সাথে আমার যে সমস্যাগুলি ছিল তা কতটা স্পষ্টভাবে সমাধান করতে সক্ষম হয়েছিল। এগুলি অবশ্য প্রথম পাঠেই ছিল। আমি যখন আরও বেশি হোঁচট খেয়েছি ... "র্যাডিক্যাল" ইএস পদ্ধতির যেমন টি-মেশিনের মতো ।
তারা যে পদ্ধতিগুলি ব্যবহার করছিল আমি তার সাথে একমত হতে শুরু করি না। একটি খাঁটি উপাদান সিস্টেমটি ওভারকিল, বা বরং অপ্রয়োজনীয় বলে মনে হয়েছিল, এটি সম্ভবত ওওপির শক্তি। লেখক এ পর্যন্ত বলে গেছেন যে ইএস সিস্টেমটি ওওপির বিপরীত, এবং এটি ওওপি বরাবর ব্যবহারযোগ্য হতে পারে, তবে এটি সত্যই হওয়া উচিত নয়। আমি এটি ভুল বলছি না, তবে আমি কার্যকরভাবে সমাধান প্রয়োগ করতে চাই না feel
সুতরাং আমার কাছে, এবং পোস্টগুলির শুরুতে আমার যে সমস্যাগুলি ছিল তা আমার সমাধানের বিপরীতে না গিয়ে সমাধান করার জন্য এখনও একটি শ্রেণিবিন্যাস ব্যবহার করা উচিত, তবে এটি আমি আগে যেমন ব্যবহার করেছি তার মতো একতরফা শ্রেণিবিন্যাস হবে না, বরং বরং একটি পলিটিক একটি (এককালের বিপরীতে একটি শব্দও পাইনি), এতে বেশ কয়েকটি, ছোট গাছ থাকে।
নিম্নলিখিত উদাহরণটি আমার কী বোঝায় তা দেখায় (এটি গেম ইঞ্জিন আর্কিটেকচার, অধ্যায় 14 এ পাওয়া একটি উদাহরণ থেকে অনুপ্রাণিত)।
আমার যানবাহনের জন্য একটি ছোট গাছ থাকবে। মূল যানবাহন শ্রেণীর একটি রেন্ডারিং উপাদান, একটি সংঘর্ষের উপাদান, অবস্থানের উপাদান ইত্যাদি থাকবে ..
তারপরে একটি ট্যাঙ্ক, যানবাহনের একটি সাবক্লাসগুলি সেগুলি থেকে সেই উপাদানগুলির উত্তরাধিকারী হবে এবং এটি তার নিজস্ব "কামান" উপাদান দেওয়া হবে।
একই চরিত্রগুলি জন্য। একটি চরিত্রের নিজস্ব উপাদান থাকবে, তারপরে প্লেয়ার শ্রেণি এটির উত্তরাধিকারী হবে এবং একটি ইনপুট নিয়ামক দেওয়া হবে, অন্য শত্রু শ্রেণিগুলি চরিত্র শ্রেণীর কাছ থেকে উত্তরাধিকারী হবে এবং একটি এআই নিয়ামক দেওয়া হবে।
আমি এই নকশাটি নিয়ে সত্যিই কোনও সমস্যা দেখছি না। খাঁটি সত্তা নিয়ন্ত্রক সিস্টেমটি ব্যবহার না করা সত্ত্বেও, বুদ্বুদ আপ প্রভাবের সাথে সমস্যাটি দেখা যায় এবং বৃহত্তর মূল শ্রেণিটি বহু-গাছের স্তরক্রমের সাহায্যে সমাধান করা হয় এবং পাতাগুলি না থাকায় ভারী, কোড ডুপ্লিকেটিং পাতার সমস্যা চলে যায় since শুধু উপাদানগুলির সাথে শুরু করার জন্য কোনও কোড রয়েছে। যদি পাতার স্তরে কোনও পরিবর্তন করা দরকার, তবে কোথাও কোড পেস্ট করার পরিবর্তে এটি একটি একক উপাদান পরিবর্তন করার মতো সহজ।
অবশ্যই, আমি যতটা অনভিজ্ঞ সেহেতু আমি যখন প্রথম একক শ্রেণিবিন্যাস, উত্তরাধিকার ভারী মডেলটি ব্যবহার শুরু করি তখন আমি কোনও সমস্যা দেখি না, সুতরাং আমি বর্তমানে যে মডেলটি প্রয়োগ করার কথা ভাবছি তাতে যদি সমস্যা হয় তবে আমি তা করব না এটি দেখতে সক্ষম হতে।
আপনার মতামত?
পিএস: আমি জাভা ব্যবহার করছি, সুতরাং সাধারণ উপাদান ব্যবহার না করে এটি বাস্তবায়নের জন্য একাধিক উত্তরাধিকার ব্যবহার করা সম্ভব নয়।
পিপিএস: নির্ভরশীল উপাদানগুলি একে অপরের সাথে সংযুক্ত করে আন্তঃগঠিত যোগাযোগগুলি করা হবে। এটি সংযুক্তির দিকে পরিচালিত করবে, তবে আমি মনে করি এটি একটি ঠিক বাণিজ্য।