» נושאי לימוד
» נושאי לימוד
יום רביעי 24 באפריל 2024
שימוש חוזר - Code Reuse
דף ראשי  תכנון המודול  שימוש חוזר - Code Reuse גרסה להדפסה

                                             

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

המטרה בשימוש חוזר היא להפחית את העלות של פיתוח אותו קוד כמה פעמים ותחזוקתו לאחר מכן. באופן אינטואיטיבי לא תמיד ברור למה לנו לשתף קוד. הרי אם כתבתי קטע קוד והתאמתי אותו לצרכים שלי אז למה שמישהו אחר ירצה להשתמש בו?

ננסה להמחיש זאת ע"י קטע קוד. נניח שהגדרנו מחלקה B עם הפונקציה f שמבצעת X,Y,Z.

 

class B
{
public:
 void f() {/*do x, do y, do z...*/} 
};

 

ועתה אנו נדרשים לממש מחלקה נוספת שתבצע X,Y.

אפשרות אחת היא כמובן:


class C
{
public:
 void g() {/*do x, do y*/};
};

 

אבל אם נרצה לחסוך בפיתוח ובתחזוקה, עדיף לפרק קודם את B:

class B
{
public:
 void f() 
 { DoX(); DoY(); DoZ(); };

 void DoX {/* do x */ };
 void DoY {/* do y */ };
 void DoZ {/* do z */ };
};

 

ואז המחלקה C תיראה כך:

 


class C
{
public:
 void g()
 {
    B my_b;
    my_b.DoX();
    my_b.DoY(); 
 };
};

 

לכאורה נדמה שסיבכנו את הקוד שלא לצורך. ייצרנו 3 פונקציות שכביכול אינן מחויבות המציאות והכל כדי לא לשכפל את X,Y,Z. ואכן, בסדרי גודל קטנים, לא תמיד מוצדק לבצע שימוש חוזר. אך אם נניח ש-X הוא מודול של כמה מאות שורות קוד, אזי כמובן שעדיף להשתמש באותן שורות קוד פעמיים ולא לשכפל מהסיבות הבאות:

  1. הקטנת נפח הקוד. יותר שורות קוד -> יותר סיכוי לבאגים.
  2. אם נבצע שו"ש (שינוי ושיפור) בקטע, מספיק שנבצע זאת פעם אחת ולא נרוץ למקומות אחרים בהם צריך גם כן לבצע את השינוי.
  3. אם נגלה באג, מספיק שנתקן אותו פעם אחת.
  4.  

 08-04-04 / 02:32  עודכן ,  01-10-03 / 19:43  נוצר ע"י ישי קנובל  בתאריך 
 חלוקה לאובייקטים ולשגרות - הקודםהבא - צימוד - Coupling 
תגובות הקוראים    תגובות  -  0
דרכונט
מהי מערכת הדרכונט?
אינך מחובר, להתחברות:
דוא"ל
ססמא
נושאי לימוד
חיפוש  |  לא פועל
משלנו  |  לא פועל
גולשים מקוונים: 2