فهم Mixins: نهج معياري لملحقات الفئة
المزيج هو نمط تصميم برمجي يسمح بتكوين فئات متعددة، مما يوفر طريقة لتوسيع قدرات الفئة الأساسية دون أن ترث منها مباشرة. غالبًا ما يشار إلى هذه التقنية باسم "الفئات الفرعية المجردة" لأنها تشبه مفهوم الميراث ولكن مع نهج أكثر مرونة ودقة.
لفهم كيفية عمل الميكسين، دعونا نتفحص المثال التالي:
// Number class
struct Number {
int n;
void set(int v) { n = v; }
int get() const { return n; }
};
// Undoable mixin
template
struct Undoable : public BASE {
int before;
void set(int v) {
before = BASE::get();
BASE::set(v);
}
void undo() { BASE::set(before); }
};
في هذا المثال، يوفر مزيج Undoable وظيفة التراجع عن مجموعة القيم السابقة. إنه يلتف بشكل أساسي حول فئة BASE، مما يسمح لأي فئة بوراثة منها واكتساب القدرة على التراجع عن طريقة ضبطها.
لإنشاء فئة جديدة تجمع بين العديد من عمليات الخلط، يمكننا استخدام البرمجة الوصفية للقالب:
// ReUndoableNumber class
typedef Undoable UndoableNumber;
typedef Redoable ReUndoableNumber;
في هذه الحالة، يرث ReUndoableNumber من كل من المزيجين Undoable وRedoable ويكتسب القدرة على التراجع عن القيم المحددة وإعادتها.
المزيجات مفيدة بشكل خاص عندما نقوم ترغب في توسيع الفئات الموجودة بوظائف متعامدة قد لا تكون ذات صلة بالسلوك الأساسي للفئة. إنها توفر نهجًا أكثر تركيبًا وقابلية للتركيب مقارنة بالميراث التقليدي، حيث يجب أن ترث الفئات مباشرة من فئة أصل للحصول على وظائفها.
علاوة على ذلك، تسمح الخلطات بإنشاء كتل بناء قابلة لإعادة الاستخدام والتي يمكن دمجها بسهولة تشكيل فئات أكثر تعقيدا. تتيح هذه المرونة للمطورين تصميم فئاتهم بالوظائف المحددة التي يحتاجون إليها، دون قيود الميراث التقليدي.
تنصل: جميع الموارد المقدمة هي جزئيًا من الإنترنت. إذا كان هناك أي انتهاك لحقوق الطبع والنشر الخاصة بك أو الحقوق والمصالح الأخرى، فيرجى توضيح الأسباب التفصيلية وتقديم دليل على حقوق الطبع والنشر أو الحقوق والمصالح ثم إرسالها إلى البريد الإلكتروني: [email protected]. سوف نتعامل مع الأمر لك في أقرب وقت ممكن.
Copyright© 2022 湘ICP备2022001581号-3