طراحی شی گرا (OOD) در C ++ یک پارادایم برنامه نویسی است که طراحی نرم افزار را در اطراف داده ها یا اشیاء، به جای توابع و منطق سازماندهی می کند، به ایجاد کد مدولار، قابل استفاده مجدد و قابل نگهداری کمک می کند.این مقاله نمونه های عملی OOD را در C ++ ارائه می دهد و در مورد چگونگی ارزیابی مفاهیم عملکرد استفاده از تکنیک های شی گرا بحث می کند.

اصول پایه طراحی Object-Oriented

اصول اصلی OOD شامل encapsulation، ارث و پلی مورفیسم. Encapsulation شامل جمع آوری داده ها و روش ها در کلاس ها است. Inheritance اجازه می دهد تا کلاس های جدید از کلاس های موجود استخراج شوند، ترویج استفاده مجدد از کد. Polymorphism اشیا را به عنوان نمونه های کلاس والد خود درمان می کند، و کد انعطاف پذیر را تسهیل می کند.

مثال عملی: Shape Class Hierarchy

در نظر بگیرید که یک سلسله مراتب ساده برای شکل دادن به طبقه پایه (FLT:0) شکل یک رابط مشترک برای همه اشکال، مانند محاسبه ی کلاس های مشتق شده مانند Circle و Rectangle [FLT5:5: پیاده سازی رفتارهای خاص.

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;
 }
};

ویژگی های Performance

استفاده از ویژگی های شی گرا می تواند به دلیل عوامل مانند تماس های تابع مجازی و تخصیص حافظه پویا، عملکرد مجازی به دلیل استفاده بیش از حد از میراث و حافظه پویا نیز می تواند بر بهره وری تاثیر بگذارد.

بهینه سازی نکات

  • مینی کردن توابع مجازی در کد انتقادی عملکرد.
  • استفاده از تخصیص پشته در صورت امکان به جای حافظه پویا.
  • ترجیح می دهید ترکیب بیش از حد ارث برای روابط ساده تر شی.
  • کد پروفایل برای شناسایی تنگناهای مربوط به ویژگی های OOD