এই স্ট্যাক এক্সচেঞ্জের একটি দ্রুত অনুসন্ধান দেখায় যে সাধারণ রচনাতে সাধারণত উত্তরাধিকারের চেয়ে বেশি নমনীয় বলে বিবেচিত হয় তবে এটি সর্বদা যেমন প্রকল্পের উপর নির্ভর করে এবং এমন সময় আসে যখন উত্তরাধিকার আরও ভাল পছন্দ হয়। আমি একটি 3D দাবা খেলা তৈরি করতে চাই যেখানে প্রতিটি টুকরোতে একটি জাল, সম্ভবত বিভিন্ন অ্যানিমেশন রয়েছে has এই দৃ concrete় উদাহরণে দেখে মনে হচ্ছে আপনি উভয় পদ্ধতির ক্ষেত্রেই কোনও মামলা করতে পারেন যে আমি ভুল?
উত্তরাধিকার এই জাতীয় কিছু দেখতে হবে (যথাযথ নির্মাতা ইত্যাদি সহ)
class BasePiece
{
virtual Squares GetValidMoveSquares() = 0;
Mesh* mesh;
// Other fields
}
class Pawn : public BasePiece
{
Squares GetValidMoveSquares() override;
}
যা অবশ্যই "হ'ল একটি" নীতিকে মান্য করে যেখানে সংমিশ্রণটি এরকম কিছু দেখায়
class MovementComponent
{
virtual Squares GetValidMoveSquares() = 0;
}
class PawnMovementComponent
{
Squares GetValidMoveSquares() override;
}
enum class Type
{
PAWN,
BISHOP, //etc
}
class Piece
{
MovementComponent* movementComponent;
MeshComponent* mesh;
Type type;
// Other fields
}
এটি কি ব্যক্তিগত পছন্দের বিষয় বা একটি পদ্ধতির স্পষ্টতই অন্যের তুলনায় একটি স্মার্ট পছন্দ?
সম্পাদনা: আমার মনে হয় আমি প্রতিটি উত্তর থেকে কিছু শিখেছি তাই কেবলমাত্র একটি বাছাইয়ের জন্য আমার খারাপ লাগছে। আমার চূড়ান্ত সমাধানটি এখানে বেশ কয়েকটি পোস্টের থেকে অনুপ্রেরণা নেবে (এখনও এটি নিয়ে কাজ করছে)। যারা উত্তর দেওয়ার জন্য সময় নিয়েছে তাদের প্রত্যেককে ধন্যবাদ।
var Pawn = new Piece(howIMove, howITake, whatILookLike)
উত্তরাধিকারের শ্রেণিবদ্ধের চেয়ে আমার কাছে অনেক সহজ, আরও পরিচালনাযোগ্য এবং আরও রক্ষণাবেক্ষণযোগ্য বলে মনে হচ্ছে।