אהוד קנצוקר

Download Report

Transcript אהוד קנצוקר

‫מגיש‪ :‬אודי קנצוקר‬
‫תבניות עיצוב‪ ,‬מה זה?‬
‫‪ ‬תכנות מונחה עצמים‬
‫‪ ‬מתן פתרון לבעיות כלליות‪.‬‬
‫‪ ‬שימוש חוזר‪ ,‬הרחבה‪ ,‬שינוי והבנה‪.‬‬
‫‪ ‬שפה משותפת‪.‬‬
‫‪ ‬תיאור התבנית‪ :‬שם‪ ,‬תיאור הבעיה‪,‬‬
‫פתרון והשלכות‪.‬‬
‫הגדרות בסיסיות‬
‫‪ ‬מחלקה – מכילה נתונים ומתודות‪.‬‬
‫‪ ‬אובייקט – המופע החיי של המחלקה‬
‫‪ ‬ממשק – "חתימת האופרציה"‬
‫‪ ‬מחלקה אבסטרקטית – ממשק שיורשים‬
‫ממנו‬
‫‪ ‬הרכבה של אוביקטים – חלק מ‪...‬‬
‫‪ ‬אגרגציה של אוביקטים – יש לו‪....‬‬
‫‪UML‬‬
‫מחלקה‬
‫הרכבה‬
‫אגרגציה‬
‫‪j‬‬
‫מחלקה אבסטרקטית‬
‫הורשה‬
‫מאיפיני התבנית‬
‫‪‬‬
‫‪‬‬
‫‪‬‬
‫‪‬‬
‫‪‬‬
‫‪‬‬
‫‪‬‬
‫‪‬‬
‫‪‬‬
‫שם וסיווג – בעל משמעות‪.‬‬
‫מה עושה בפועל – עונה על תכלית‪ ,‬בעיות‪.‬‬
‫מוטיבציה – הדגמה של פתרון‪.‬‬
‫מתי כדאי – באילו מקרים‪ ,‬איך נזהה‬
‫תרשימים – ‪TMO , SD ,UML‬‬
‫משתתפים – מחלקות ואובייקטים‬
‫מימוש – מלכודות‪ ,‬רעיונות וטכניקות‬
‫שימושים ידועים – מקרים ידועים‬
‫תבניות קשורות ‪ -‬קשר והבדלים‬
‫תבניות ידועות שהוגדרו‬
‫סוג‪ :‬התנהגותי‪ ,‬מבני‪ ,‬יצירה‬
‫מרחב‪ :‬מחלקה‪ ,‬אוביקט‬
‫‪Singleton‬‬
‫‪ ‬תבנית יצירה‪.‬‬
‫‪ ‬מוודא שיהיה מופע אחד לאותו אוביקט‪.‬‬
‫‪ ‬מספק גישה גלובלית לאובייקט‪.‬‬
‫‪ ‬חיסרון‪ :‬שימוש במשתנים סטטיים מושך‬
‫אותנו מחוץ לעולם ‪.OO‬‬
‫‪ ‬דוגמא‪ :‬קישור לדאטה בייס‪.‬‬
‫מבנה ‪Singleton -‬‬
‫‪ -Singleton‬מגדיר אופרציית ‪ instance‬שמקנה למשתמשים גישה‬
‫למופע היחיד של האובייקט‬
‫משתמשים ניגשים למופע של ‪ Singleton‬אך ורק דרך‬
‫אופרצית ‪ instance‬של ‪.Singleton‬‬
‫‪Strategy‬‬
‫‪ ‬תבנית מבניות‬
‫‪ ‬מאפשר לאלגוריתמים להשתנות‪.‬‬
‫‪ ‬מתאים למחלקות דומות אך שונות‬
‫בהתנהגותן‬
‫‪ ‬האלגוריתם משתמש במידע שלא צריך‬
‫להיות חשוף ללקוח‪.‬‬
‫מבנה ‪Strategy -‬‬
‫‪ - Strategy‬מגדיר ממשק משותף לכל האלגוריתמים הנתמכים‪.‬‬
‫‪ - ConcreteStrategy‬מספק מימוש של האלגוריתמים אחדים‪ .‬בהתאם לממשק ‪Strategy‬‬
‫‪ - Context‬לקוח של ‪ConcreteStrategy‬בזמן ריצה ‪,‬ההתייחסות היא לאובייקט מסוג‪Strategy .‬‬
‫‪Composite‬‬
‫‪ ‬תבנית מבנית‬
‫‪ ‬מרכיב אובייקטים למבני עץ שמייצגים את‬
‫ההיררכיה של היחס‪.‬‬
‫‪ ‬מאפשר ללקוחות לטפל באובייקטים‬
‫בודדים ובהרכבות באופן אחיד‬
‫מבנה ‪Composite -‬‬
‫‪ - Component‬מגדיר את הממשק עבור אובייקטים בהרכבה‪.‬מממש את התנהגות ברירת המחדל עבור‬
‫הפעולות המשותפות לכל המחלקות‪.‬מגדיר ממשק לגישה וניהול תתי העצים‪.‬‬
‫‪ - Leaf‬מייצג אובייקט מסוג עלה בהרכבה‪ .‬מגדיר את ההתנהגות של אובייקטים פרימיטיביים בהרכבה‪.‬‬
‫‪ -Composition‬מגדיר את ההתנהגות של אובייקטים בעלי ילדים‪ .‬שומר את הילדים ומממש את הפעולות‬
‫הנגזרות מכך‪.‬‬
‫‪ - Client‬מפעיל את האובייקטים בהרכבה תוך שימוש בממשק של ‪Composition‬‬
‫סיכום‬
‫‪ ‬תבניות עיצוב הן כלי אלמנטרי למהנדס‬
‫ומפתח תוכנה‬
‫‪ ‬ישנם עוד הרבה תבניות שונות ופיתוחים‬
‫של תבניות קיימות‬
‫‪ ‬בעזרת התבניות אנו בונים שלד טוב‬
‫למערכת שלנו להמשך פיתוח‪.‬‬