উত্তরাধিকার বনাম রচনা


16

আমি সি # তে আমার অর্থ উপার্জন করি সাধারণত সেই ভাষায় আমি ইন্টারফেস ব্যবহার করে উচ্চ আকাশের সমস্ত কিছু ডিকুয়াল করতে পছন্দ করি। এটি আমাকে এন্টারপ্রাইজ কোডে ভালভাবে পরিবেশন করেছে তবে বেস # ক্লাসের জন্য কিছু ডিফল্ট আচরণ সংজ্ঞায়িত করতে পেরে আমি নিজেকে উত্তরাধিকারের দিকে ঝুঁকতে দেখছি। যদিও এটি করা আমি নোংরা বোধ করি, যেমন আমি কিছু আর্কিটেকচার godশ্বরকে অমান্য করছি যারা একবার বলেছিল "উত্তরাধিকারের চেয়ে কমপোজিশনের পক্ষপাতী"। আমি এটি কালো এবং সাদা না জানি তবে আমার মনে হয় আমি আরও কিছু কাজ করে ইন্টারফেস ব্যবহার করতে এবং প্রায় একই জিনিস অর্জন করতে পারি।

অন্য লোকেরা কী করে? উত্তরাধিকার গেমসের জন্য সঠিক পন্থা বা কিছু ইন্টারফেসে আমার চুল্লি হওয়া উচিত?


1
ইন্টারফেসগুলিও রচনা নয়, সুতরাং আপনি কী জিজ্ঞাসা করছেন তা পরিষ্কার নয়।

আমি কেবল উল্লেখ করতে চাই যে আপনি যেহেতু সি # এর সাথে কাজ করছেন আপনি যদি উত্তরাধিকার ব্যবহার করা বেছে নিয়ে থাকেন তবে আপনার # কঠিন সময় হবে যেহেতু সি # সত্যিকারের একাধিক উত্তরাধিকার সমর্থন করে না। আপনি 4-5 ইন্টারফেসের সীমার মধ্যে না আসা পর্যন্ত একাধিক ইন্টারফেস পদ্ধতি ব্যবহার করা ভাল এবং একই বাস্তবায়ন ভাগ করে নেওয়ার জন্য প্রতিটি শ্রেণীর মধ্যে 25+ লাইন কোড কাটা / পেস্ট করতে হবে। কিছু কর্মপরিক্রমা রয়েছে তবে ভাষাটি সরাসরি সমর্থন দেয় না বলে এগুলি ঠিক কুৎসিত।
এনটিএসকোবাল্ট

উত্তর:


23

গেমসে উত্তরাধিকার হ'ল আসলে আপনি করতে পারেন এমন একটি খারাপ কাজ - বিশেষত সত্ত্বার ক্ষেত্রে। কেন এই জন্য পড়ুন । উত্তরাধিকারের উপরের রচনাটি আপনাকে গেমসের সাথে অনেক দীর্ঘ সময় নেয়। আপনার ইঞ্জিনের অন্যান্য ক্ষেত্রগুলির হিসাবে, এটি সত্যিই কিছু যায় আসে না। উদাহরণস্বরূপ বলুন যে আপনি কোনও ধরণের বাহ্যিক নেটওয়ার্ক পরিষেবাতে কল করছেন, তারপরে আপনি উদাহরণস্বরূপ একটি জেনেরিক টাইপ পরিষেবা উত্তরাধিকারী করতে পারেন। এইচটিটিপিএসসওয়ার এবং সকেট সার্ভিস - আপনি যে এন্টারপ্রাইজ অ্যাপ্লিকেশনগুলিতে ব্যবহার করছেন তেমনই।

আপনার গেমটি সত্যই সহজ না হলে আপনি কোনও উপাদান-ভিত্তিক সত্তা (সিবিই) আর্কিটেকচারটি ব্যবহার করতে চাইবেন। সাধারণ ধারণাটি হ'ল সত্তা সহ, উত্তরাধিকার সূত্রে না হয়ে সাধারণভাবে রচিত হওয়ার কারণ হ'ল রানটাইম অবধি আপনি জানেন না যে প্রদত্ত সত্তার কী কী ক্ষমতা থাকবে। উদাহরণস্বরূপ, খেলোয়াড়ের জাহাজটিকে একটি স্পেস শ্যুটারে নিয়ে যান। গেমপ্লে চলাকালীন কোনও মুহুর্ত পর্যন্ত আপনি জানেন না, খেলোয়াড় কী কী অস্ত্র, আর্মার, সিস্টেমগুলি (অর্থাৎ উপাদানগুলি) গ্রহণ করতে চলেছে, কেনা, বিক্রি করবে, হারাবে, ধ্বংস করেছে, ইত্যাদি So তাই এটিকে মডেল করার একমাত্র বাস্তব উপায় is বস্তু রচনা মাধ্যমে। এই দৃশ্যের অতিরিক্ত দিকটি হ'ল আপনার শত্রুর ধরণটি প্রতিবার দেখার সময় সর্বদা ঠিক একইরকম শত্রুদের চেয়ে আপনি সম্পূর্ণ কাস্টমাইজযোগ্য শত্রুও রাখতে পারেন the সিবিই এর সাহায্যে আপনি মার্টিয়ান ফ্রেইটার দেখতে পাবেন এবং ভাবতে পারেন, "আহ এটি কেবল ক্ষুদ্র লেজার রয়েছে, আমি এটিকে নামিয়ে দেব", এবং সাধারণত এটি সত্য হতে পারে তবে হঠাৎ আপনি যখন বুঝতে পারেন যে এটির একটি বড় গাধা রয়েছে ওয়ার্মহোল বন্দুক চমক চমক!

যৌগিককরণ যুক্তিযুক্ত অন্তর্নিহিত সংযোগ অপসারণ করছে, এবং এটি ভাল।


পরামর্শ সাথীর জন্য ধন্যবাদ :) আমি ভয়েস শুনতে পাচ্ছিলাম না জেনে ভাল লাগল!
পিটার শর্ট

1
+1 নিবন্ধটির জন্য ধন্যবাদ, আমি বেশ কিছুদিন ধরে আমার গেমটিতে এটি করার অর্থ করছি
জন ম্যাকডোনাল্ড

3
লক্ষ্য করা উচিত যে গেম সংস্থাগুলির উচ্চ আন্তঃনির্ভরতার কারণে যে উত্তরাধিকার প্রায়শই জিনিসগুলিকে জটিল করে তোলে এবং রক্ষণাবেক্ষণযোগ্যতা এবং বর্ধনকে একটি জটিল কাজ করে তোলে। উপাদান সিস্টেমগুলি এই সমস্যাটিকে সুন্দরভাবে মোকাবেলা করে এবং অন্যান্য অতিরিক্ত বেনিফিটটি উপরের উত্তরে তালিকাভুক্ত রয়েছে;)
জেমস

এটিও লক্ষ করা উচিত যে "" তবে আপনি যখন হঠাৎ পরিসরে আসবেন তখন বুঝতে পারবেন এটির একটি বড় গাধা কৃমির বন্দুক রয়েছে Sur অবাক করা অবাক! " খারাপ গেমটির নকশা: ডি
জোনাথন কনেল

1
আশ্চর্য মজাদার, কিন্তু আশ্চর্যর অর্থ এই যে আপনি সতর্কতা ছাড়াই মারা যাচ্ছেন, নিম্ন স্তরের জাহাজের মতো যা আপনাকে ওহকো করতে পারে, হতাশ হ'ল;) অবশ্যই আপনার উত্তরটিতে আপনি এটি বোঝাতে চেয়েছিলেন না। এছাড়াও, কেবল গেম ডিজাইনের চেয়ে গেমের আরও অনেক কিছু রয়েছে।
জোনাথন কনেল

3

যারা জার্মান ভাষায় কথা বলে তাদের জন্য একটি আকর্ষণীয় বই: http://www.amazon.com/Architektur-Kerns-einer-Game-Engine-Implementierung/dp/3639324471/ref=sr_1_1?ie=UTF8&qid=1314875533&sr=8-1

কখন এবং কেন ব্যবহার করবে কোন স্থাপত্যটি এখানে পাওয়া যেতে পারে তার নিবিড় দৃষ্টিপাত: /programming/1901251/comp घटक-based-game-engine-design

আমার নিজের জন্য আমি প্রকল্পের আকার এবং কোডটি প্রসারিত বা পুনরায় ব্যবহার করার সম্ভাবনার উপর নির্ভর করে আমার আর্কিটেকচারটি স্থির করি। এমন কোনও মাইক্রো প্রকল্পের আর্কিটেকচারে কেন ঘন্টা এবং ঘন্টা বিনিয়োগ করুন যেখানে আপনার কোডটি আবার ব্যবহার করার কোনও সম্ভাবনা নেই? একই সময়ে আপনি প্রকল্পটি শেষ করতে পারেন।

কম্পোজিশন বনাম উপাদানগুলি উপাদানগুলি দুর্দান্ত অভিনব জিনিস তবে বেশিরভাগ প্রকল্পে / আর্কিটেকচারে রচনাগুলি স্টাফটিও করবে (উপাদান-ভিত্তিক ওভারহেড ছাড়াই)। এটি নির্ভর করে যে আপনার উপাদান-সিস্টেমটি এই রচনাটি কী সরবরাহ করতে পারে।


উদাহরণস্বরূপ, খেলোয়াড়ের জাহাজটিকে একটি স্পেস শ্যুটারে নিয়ে যান। গেমপ্লে চলাকালীন কোনও মুহুর্ত পর্যন্ত আপনি জানেন না, খেলোয়াড় কী কী অস্ত্র, আর্মার, সিস্টেমগুলি (অর্থাৎ উপাদানগুলি) গ্রহণ করতে চলেছে, কেনা, বিক্রি করবে, হারাবে, ধ্বংস করেছে, ইত্যাদি So তাই এটিকে মডেল করার একমাত্র বাস্তব উপায় is বস্তু রচনা মাধ্যমে।

অনেক আগেও উপাদানগুলি ছাড়াই সম্ভব ছিল


-1, উপাদানগুলি রচনার একটি ফর্ম।

ভাল, একটি ফর্ম কিন্তু একই নয় যেহেতু তারা বিভিন্ন বৈশিষ্ট্য সরবরাহ করে। (সুতরাং আমি আপনার মন্তব্য এবং -1 বুঝতে পারি না)
আদর্শ

1
যখন বলবেন "রচনা উপাদান বনাম" এটা স্পষ্ট নয় কি আপনি তুলনা করা হয় যেহেতু উপাদান হয় রচনা। আপনি কি গতিশীল উপাদান বনাম স্থিতিশীল উপাদান বোঝাতে চান? ধরণের বনাম রচনাগুলির মধ্যে পারিবারিক বা কাঠামোগতভাবে সম্পর্কিত নয়? "উপাদান-ভিত্তিক ওভারহেড" কী? স্ট্যাটিক উপাদান সিস্টেমগুলিতে (এবং অনেকগুলি গতিশীল) ওভারহেড প্রায় শূন্য হয়।

এইচএম, আকর্ষণীয় পয়েন্ট। আপনি কি আরও একটু বিস্তারিত আলোচনা মনে করেন? না হলে আমি আপনাকে অন্য মঞ্চে আমার মেইল ​​ঠিকানাটি পাঠাতে চাই।
আদর্শ
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.