תכנון הנדסי וניתוח
תבניות עיצוב ב C++: דוגמאות מעשיות ואסטרטגיות לפתרון בעיות
Table of Contents
תבניות עיצוב מוכחות פתרונות לבעיות תכנות נפוצות.ב-C++, הן מסייעות לשפר את ארגון הקוד, את יכולת הישבן ואת התחזוקה. מאמר זה חוקר דוגמאות מעשיות של תבניות עיצוב פופולריות וכיצד ניתן ליישם אותן לפתרון בעיות בעולם האמיתי.
Singleton Pattern
דפוס ה- Singleton מבטיח כי בכיתה יש רק מקרה אחד ומספק נקודת גישה גלובלית אליו.זה שימושי לניהול משאבים משותפים כגון הגדרות תצורה או מערכות כניסה.
דוגמא:
(ב) ויקרא י"ד:
שיעור ה- ⁇ cpp Logger { הפרטי: סטטי Logger* למשל; Logger() הציבור: סטטי Logger* GetInstance() {If (!instance) {לדוגמה,= חדש Logger(); } חזרה לדוגמה; } UL log(const std:string & הודעה) {x }; Logger: tr=r=r=r=tinsance=r=r; pt; ⁇ ; ⁇ ; ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇
שיטת המפעל
תבנית שיטת המפעל מגדירה ממשק ליצירת אובייקטים, אך מאפשרת תת-classes לשנות את סוג האובייקטים שייצרו.הוא מקדם הפיכה והיקף רופפת.
דוגמה: יצירת סוגים שונים של מסמכים.
(ב) ויקרא י"ד:
⁇ cpp Class Document {Public: Virtual UL ליצור()=0; וירטואלי (Document) {{{{{{{{הערה|הערה|הערה|הערה|}}{{{{{הערה|הערה|הערה|הערה|}}|}}|}}|}}|}}{{{הערה|הערה|}}|}}|}}|}}|}}]]}}{{{{{{הערה|הערה|הערה|הערה|הערה|הערה|הערה|}}|}}|}}|}}|הערה|הערה|הערה|הערה|הערה|הערה|{{{{{{{{{הערה|הערה|}}|}}|הערה|הערה|}}|}}|}}|}}|}}|}}|}}|}}|}}|}}|}}|}}|}}|}}|}}|}}|}}|}}|}}|}}|}}|}}|}}|}}|}}|}}|}}|}}|}}|}}|}}|}}]]
המונחים:
דפוס המשקיף קובע תלות חד-מינית בין אובייקטים כך שכאשר אובייקט אחד משנה את המדינה, כל התלויים שלו מאומתים באופן אוטומטי.זה שימושי ליישום מערכות טיפול אירועים.
דוגמה: מערכת אירועים פשוטה שבה מספר צופים מגיבים לשינוי.
(ב) ויקרא י"ד:
⁇ cpp #include #include Class Observer הציבור: וירטואלי רִיק עדכון () = 0; וירטואלי - Observer() {{{{{{{{הערה|הערה|הערה|הערה|הערה|הערה|הערה|הערה|}}|{הערה|הערה|}}}}}}{{{הערה|}}}}}}}}}}}}}}}}{{{{{הערה|הערה|הערה|הערה|הערה|הערה|הערה|הערה|הערה|הערה|הערה|הערה|הערה|הערה|הערה|הערה|הערה|הערה|}}|}}|}}|}}{{{{{{{{{{{{{{{{{{{{{הערה|}}|}}|}}|}}|}}|}}|}}|}}|}}|}}|}}|}}|}}|}}|}}|}}|}}|}}|}}|}}|}}|}}|}}]]}}]]}}]]