תכנון הנדסי וניתוח
יישום עיצוב מוכווני אובייקטים ב C++: דוגמאות מעשיות ו- Performance Calculations
Table of Contents
עיצוב מונחה אובייקטים (OOD) ב C++ הוא פרדיגמת תכנות המארגן עיצוב תוכנה סביב נתונים, או אובייקטים, במקום פונקציות ולוגיקה.זה עוזר ליצור קוד מודולרי, ניתן להחלפה, ושמירה על קוד. מאמר זה מספק דוגמאות מעשיות של OOD ב- C++ ודן כיצד להעריך את ההשלכות של שימוש בטכניקות מוכוונות אובייקט.
עקרונות יסוד של עיצוב אובייקטיבי
עקרונות הליבה של OOD כוללים encapsulation, ירושה ופולימורפיזם. Encapsulation כרוך בנתונים ושיטות מבוללות בתוך כיתות. אי-ההההרה מאפשרת שיעורים חדשים להפיק מן הקיימים, קידום השימוש בקוד. Polymorphism מאפשר לאובייקטים להיות מטופלים כמקרים של שיעור ההורים שלהם, קידום קוד גמיש.
דוגמה מעשית: Shape Class Hierarchy
(הופנה מהדף ויקרא י"ד): "[דרוש מקור] ל[[המאה ה-20]]" (שם כ"ד, כ"ד, כ"ד, כ"ד, כ"ד:2CircleFLT:2CirclephalFLT) ו-"FLT:4Rectvet: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;
}
};
שיקולים
באמצעות תכונות מוכוונות להתנגדות יכול להשפיע על הביצועים עקב גורמים כגון שיחות תפקוד וירטואלי ו הקצאת זיכרון דינמי. פונקציות וירטואליות מציגות כותרת קלה בגלל השימוש הנדפס.
אופטימיזציה של טיפים
- מינוף של פונקציות וירטואליות קורא בקוד ביקורתי ביצועים.
- השתמש בהקצאת ערימה במידת האפשר במקום זיכרון דינמי.
- מעדיפים את ההרכב על הירושה עבור מערכות יחסים פשוטות יותר של אובייקטים.
- קוד פרופיל לזהות צווארי בקבוק הקשורים לתכונות OOD.