דלג לתוכן הראשי
שכבת הפשטה ארכיטקטורת תוכנה בעברית

נושא · 4 מאמרים

תבניות התנהגות

תבניות ההתנהגות עוסקות באלגוריתמים ובחלוקת האחריות בין אובייקטים: מי מחליט מה לעשות, איך מחליפים דרך חישוב בלי לגעת בקוד שמשתמש בה, ואיך מוסיפים פעולה חדשה למבנה קיים בלי לפרק אותו. בספר ה-Gang of Four זו המשפחה הגדולה ביותר, ובאתר הזה חילקנו אותה לשניים — כאן התבניות שמתמקדות באלגוריתם ובמצב, ובקטגוריית תקשורת בין אובייקטים אלה שמתמקדות בהעברת הודעות.

Visitor מוסיף פעולות למבנה אובייקטים בעזרת double dispatch, Strategy מחליף אלגוריתם בזמן ריצה, State מחליף switch ענק באובייקטי מצב, וTemplate Method מגדיר שלד של אלגוריתם שמחלקות־בת ממלאות. בכל מאמר יש גם סעיף שמסביר מתי די בפונקציה פשוטה.

מאמרים בנושא

תבניות התנהגות

תבנית Template Method: שלד אלגוריתם יציב עם צעדים גמישים — template method design pattern

תבנית Template Method, או בשם החיפוש הנפוץ template method design pattern, היא אחת מתבניות ההתנהגות החשובות בתכנות מונחה־עצמים. הרעיון פשוט אך חזק: מחלקת־אב מגדירה את שלד האלגוריתם, כלומר את סדר…

11 דק׳ קריאה

תבניות התנהגות

State Design Pattern: תבנית State שמחליפה switch ענק באובייקטים עם התנהגות משתנה

state design pattern היא תבנית התנהגות קלאסית שמטפלת במצב מוכר מאוד בתכנון מונחה־עצמים: אובייקט אחד מתנהג אחרת לפי הסטטוס הפנימי שלו, והקוד מתחיל להתמלא ב־switch, ב־if ובבדיקות חוזרות. במקום לרכז…

9 דק׳ קריאה

תבניות התנהגות

strategy design pattern: תבנית Strategy להחלפת אלגוריתם בזמן ריצה, ומתי פונקציה פשוטה כבר לא מספיקה

תבנית strategy design pattern מטפלת במצב מוכר מאוד בתכנון מונחה עצמים: יש כמה דרכים לבצע פעולה מסוימת, והבחירה ביניהן לא צריכה להיות תקועה בתוך שרשרת if/else ארוכה. במקום שהמחלקה המרכזית…

9 דק׳ קריאה

תבניות התנהגות

תבנית Visitor: הוספת פעולות למבנה אובייקטים בלי לשנות אותו — double dispatch ומימוש מלא על עץ ביטויים

Visitor מייצגת פעולה שמתבצעת על האלמנטים של מבנה אובייקטים, ומאפשרת להגדיר פעולה חדשה בלי לשנות את מחלקות האלמנטים. ההגדרה לפי ספר ה-GoF, איך double dispatch עובד באמת, מימוש מלא על עץ ביטויים ב-Java ובפייתון, והחלופה המודרנית של pattern matching.

8 דק׳ קריאה