Singleton, Constructor, Protected, Interface, Polymorphism, Virtual Function, Icomparabale

בחלק זה תמצא מבט מהיר על הנושאים המרכזיים שבמדריך: נתחיל בהיכרות עם מערכת ניהול הגרסאות Git ונלמד כיצד ליצור מאגר, לבצע commitים ולנהל ענפים בצורה יעילה.
נמשיך אל אוסף המהדרים GCC ונראה כיצד לקמפל פרויקטים מרובי קבצים בשפת C++ תוך שימוש בדגלי אופטימיזציה מתקדמים.
בנוסף נעמיק בעקרונות עבודה נקייה, אוטומציית בנייה בסביבת DevOps וטכניקות אבטחת קוד החיוניות למיוני גאמא סייבר וליחידה 8200.
נעסוק גם בהבנת תהליך ה-linking, בניהול תלותיות ספריות חיצוניות ובשיטות אוטומציה להרצת בדיקות יחידה בכל pipeline שחרור.
נציג דוגמאות תצורה ל-Makefile ומקרי שימוש ב-CI/CD ענני, כדי להפוך כל פרויקט לקל לתחזוקה והרחבה.

המושגים שנסקר כאן: Singleton, Constructor, Protected, Interface, Polymorphism, Virtual Function ו־ IComparable.

Singleton

תבנית ה־Singleton נועדה להבטיח שרק מופע יחיד (Instance) של מחלקה מסוימת יתקיים בכל יישום.
יתרון מרכזי: כאשר רוצים משאב גלובלי יחיד, כמו מנהל תצורה או חיבור למסד הנתונים, נמנעים מכך שייווצרו מופעים מרובים שעלולים לגרום לבעיות סנכרון או התנגשויות.

Constructor (בנאי)

Constructor היא מתודה מיוחדת במחלקה שאחראית על אתחול המופע ברגע יצירתו.
בשפות כמו C# ו־Java, השם שלה זהה לשם המחלקה והיא אינה מחזירה ערך.

Protected (גשָׁה־מטה)

Protected הוא מודיפיקאטור גישה (Access Modifier) בשפות כמו C# ו־Java.
שדות או מתודות שמסומנים כ־protected זמינים למחלקה עצמה ולמחלקות היורשות ממנה.

Interface (ממשק)

Interface הוא מבנה שמתאר קבוצה של שיטות (Methods) ותכונות (Properties) שצריך לממש במחלקות ש'מיישמות' אותו.
ממשק אינו מחזיק לוגיקה פנימית אלא רק חתימה (Signature) של מה שצריך להיות.

Polymorphism (רב־צורתיות)

Polymorphism מתייחס ליכולת של אובייקט להתנהג בשיטות שונות על פי סוגו האמיתי בזמן ריצה, גם כשמתייחסים אליו דרך טיפוס כללי יותר.

Virtual Function (פונקציה וירטואלית)

Virtual Function היא שיטה במחלקת בסיס שמסומנת כ־virtual.
משמעות הדבר היא: כשהמחלקה יורשת ושולטת בשיטה זו, ניתן להחליף אותה על ידי שיטה זהה שמסומנת כ־override במחלקה היורשת.

IComparable

IComparable הוא ממשק (Interface) בשפת C# המגדיר קריאה אחת:
int CompareTo(object other).
מטרת הממשק: לאפשר השוואה וסידור (Sorting) של מופעים.

סיכום

בסיום מדריך זה, דנו במגוון מושגים משמעותיים בשפות מונחות עצמים:
Singleton, Constructor, Protected, Interface, Polymorphism, Virtual Function ו־ IComparable.

תודה! בזכותכם נוכל להשתפר