180 likes | 419 Views
תבניות עיצוב. מגיש: אודי קנצוקר. Design Patterns. תבניות עיצוב, מה זה?. תכנות מונחה עצמים מתן פתרון לבעיות כלליות. שימוש חוזר, הרחבה, שינוי והבנה. שפה משותפת. תיאור התבנית: שם, תיאור הבעיה, פתרון והשלכות. הגדרות בסיסיות. מחלקה – מכילה נתונים ומתודות. אובייקט – המופע החיי של המחלקה
E N D
תבניות עיצוב מגיש: אודי קנצוקר Design Patterns
תבניות עיצוב, מה זה? • תכנות מונחה עצמים • מתן פתרון לבעיות כלליות. • שימוש חוזר, הרחבה, שינוי והבנה. • שפה משותפת. • תיאור התבנית: שם, תיאור הבעיה, פתרון והשלכות.
הגדרות בסיסיות • מחלקה – מכילה נתונים ומתודות. • אובייקט – המופע החיי של המחלקה • ממשק – "חתימת האופרציה" • מחלקה אבסטרקטית – ממשק שיורשים ממנו • הרכבה של אוביקטים – חלק מ... • אגרגציה של אוביקטים – יש לו....
UML הורשה מחלקה הרכבה אגרגציה j מחלקה אבסטרקטית
מאיפיני התבנית • שם וסיווג – בעל משמעות. • מה עושה בפועל – עונה על תכלית, בעיות. • מוטיבציה – הדגמה של פתרון. • מתי כדאי – באילו מקרים, איך נזהה • תרשימים – UML, SD , TMO • משתתפים – מחלקות ואובייקטים • מימוש – מלכודות, רעיונות וטכניקות • שימושים ידועים – מקרים ידועים • תבניות קשורות - קשר והבדלים
תבניות ידועות שהוגדרו סוג: התנהגותי, מבני, יצירה מרחב: מחלקה, אוביקט
Singleton • תבנית יצירה. • מוודא שיהיה מופע אחד לאותו אוביקט. • מספק גישה גלובלית לאובייקט. • חיסרון: שימוש במשתנים סטטיים מושך אותנו מחוץ לעולם OO. • דוגמא: קישור לדאטה בייס.
Singleton - מבנה • Singleton- מגדיר אופרציית instance שמקנה למשתמשים גישה למופע היחיד של האובייקט • משתמשים ניגשים למופע של Singleton אך ורק דרך אופרצית instance של Singleton.
Strategy • תבנית מבניות • מאפשר לאלגוריתמים להשתנות. • מתאים למחלקות דומות אך שונות בהתנהגותן • האלגוריתם משתמש במידע שלא צריך להיות חשוף ללקוח.
Strategy - מבנה Strategy - מגדיר ממשק משותף לכל האלגוריתמיםהנתמכים. ConcreteStrategy - מספק מימוש של האלגוריתמים אחדים.בהתאם לממשק Strategy Context - לקוח של ConcreteStrategyבזמן ריצה, ההתייחסות היא לאובייקט מסוג. Strategy
Composite • תבנית מבנית • מרכיב אובייקטים למבני עץ שמייצגים את ההיררכיה של היחס. • מאפשר ללקוחות לטפל באובייקטים בודדים ובהרכבות באופן אחיד
Composite - מבנה • Component- מגדיר את הממשק עבור אובייקטים בהרכבה.מממש את התנהגות ברירת המחדל עבור הפעולות המשותפות לכל המחלקות.מגדיר ממשק לגישה וניהול תתי העצים. • Leaf- מייצג אובייקט מסוג עלה בהרכבה. מגדיר את ההתנהגות של אובייקטים פרימיטיביים בהרכבה. • Composition- מגדיר את ההתנהגות של אובייקטים בעלי ילדים. שומר את הילדים ומממש את הפעולות הנגזרות מכך. • Client -מפעיל את האובייקטים בהרכבה תוך שימוש בממשק של Composition
סיכום • תבניות עיצוב הן כלי אלמנטרי למהנדס ומפתח תוכנה • ישנם עוד הרבה תבניות שונות ופיתוחים של תבניות קיימות • בעזרת התבניות אנו בונים שלד טוב למערכת שלנו להמשך פיתוח.