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
סיכום
תבניות עיצוב הן כלי אלמנטרי למהנדס
ומפתח תוכנה
ישנם עוד הרבה תבניות שונות ופיתוחים
של תבניות קיימות
בעזרת התבניות אנו בונים שלד טוב
למערכת שלנו להמשך פיתוח.