(أ) التصميم الموجه نحو الأغراض في الوثيقة C++ هو نموذج للبرمجة ينظم تصميم البرامجيات حول البيانات أو الأشياء، بدلاً من الوظائف والمنطق، ويساعد على وضع مدونة نموذجية وقابلة لإعادة الاستخدام وقابلة للاستمرار، وتقدم هذه المادة أمثلة عملية على OOD في C++، وتناقش كيفية تقييم الآثار المترتبة على الأداء في استخدام التقنيات ذات الوجهة الموضوعية.

المبادئ الأساسية للتصميم الموجه نحو الأجسام

وتشمل المبادئ الأساسية للإبطال الشامل للعقوبة الجلدية، والإرث، وتعدد المورفورم، ويشمل التكتل تجميع البيانات والأساليب داخل الفصول، ويتيح الإرث للطبقات الجديدة أن تستمد من الفئات القائمة، ويعزز إعادة استخدام الشفرة، ويمكِّن البوليمورفيا من معاملة الأشياء على أنها حالات من صف الوالدين، وييسر وضع مدونة مرنة.

نموذج عملي: نموذج فصل شابي

(ب) النظر في ترتيب هرمي بسيط للتشكيلات، تحدد درجة الأساس Shape] واجهة مشتركة لجميع الأشكال، مثل منطقة حسابية.

class Shape {
public:
 virtual double area() const = 0;
 virtual ~Shape() {}
};

class Circle : public Shape {
private:
 double radius;
public:
 Circle(double r) : radius(r) {}
 double area() const override {
 return 3.14159 * radius * radius;
 }
};

class Rectangle : public Shape {
private:
 double width, height;
public:
 Rectangle(double w, double h) : width(w), height(h) {}
 double area() const override {
 return width * height;
 }
};

اعتبارات الأداء

ويمكن أن يؤثر استخدام السمات ذات الوجهة الموضوعية على الأداء بسبب عوامل مثل المكالمات الافتراضية للوظيفة والتخصيص الدينامي للذاكرة، كما أن الوظائف الافتراضية تضيف رأساً إضافياً طفيفاً بسبب نظرة الميراث المتقلبة، كما أن الاستخدام المفرط للميراث والذاكرة الدينامية يمكن أن يؤثر على الكفاءة.

الأداء الأمثل

  • التقليل إلى أدنى حد من المكالمات الافتراضية في مدونة الأداء - الحرجة.
  • استخدمي التخصيص الخفيف عندما يكون ممكناً بدلاً من الذاكرة الدينامية
  • التكوين الأفضل على الميراث لعلاقات الجسم البسيطة
  • رمز موجز لتحديد الاختناقات المتصلة بملامح مكتب التخلص من الذخائر المتفجرة.