Iterator design Pattern

Wednesday, May 1, 2013

  ה"איטרטור" נשמע לנו קצת כמו "איטרציות" וזה מזכיר לנו סיבובים בלולאה.. עפ"י המילון העברי איטרציה בשפה תקינה ניתן לומר "חזרור".. וואלה !! בכל מקרה מטרת התבנית כפי שהוצגה בתקופה הפרהיסטורית, היא לאפשר גישה לאוספים (רשימות, מערכים, עצים)  של אובייקטים מבלי לחשוף את המבנה הפנימי או את כל מה שהאובייקט מכיל, למעשה שימוש ב"איטרטור" הוא חלק מתהליך האינקפסולציה. ממשק איטרציות אינו תלוי במימוש כזה או אחר, אלא מהווה דרך משותפת למעבר על רשימות בצורה "מוגנת"בדוט נט לרוב ניתן  לומר שIteraror Pattern == IEnumerable  וזה קיים גם בסביבות פיתוח מקבילות בJava, C++. כשאני מגדיר על אובייקט מסויים שהוא מימוש של IEnumerable זה נותן לי את היכולת לעבור עליו באיטרציות של ForEach. היחודיות של ForEach...

Bridge

Wednesday, November 7, 2012

Bridge הרעיון בתבנית Bridge הוא להפריד בין החוזה לבין המימוש כך שלא יהיו תלויים זה בזה. ז"א שאם יש לנו חוזה א' ומולו מימוש ב' אז ב' לא יכיר את א' אלא שחקן חדש שייקרא ג' יהווה את ערוץ הקשר ביניהם, וזאת בעצם התבנית. תבנית ה"גשר" פחות נפוצה אולי בשימוש בעיקר משום שיש לנו דרכים חדשות ליצור הפרדה וחוסר תלות בין הגדרת ממשק לבין המימוש שלו. בעיקר עקב השימוש הנפוץ בתבניות תכנוןכמו מודל שלש שכבות שיוצרים הפרדה וחוסר "תלות" בין חלקים שונים בתכנית שלנו.שימוש גיוני יכול להיות אם נצטרך להחליף מימוש של חוזה בזמן ריצה.בואו נבנה דוגמא בסיסית שלב אחרי שלב: 1.      נגדיר את החוזהpublic interface BridgePattern    {        void DoOperation();     ...
אין תגובות

Factory

Sunday, September 9, 2012

Factory Pattern פקטורי – מפעל , משמעות תבנית העיצוב פקטורי היא , לתת למישהו את האחריות ליצירת אובייקטים, להפריד בין הלקוח של הקלאס לבין מי שיוצר אותו ולא שהלקוח ייצור אובייקטים ישירות מישהו הזכיר Encapsulation ? תבנית פקטורי מתחלקת לשני מימושים עיקריים  Factory Method  למול abstract Factory נתחיל בראשון שהוא פשוט יותר ומקובל מאוד . בואו נחשוב על התרחיש הבא.   א.      חנות חיות שמוכרת חיות מחמד אלקטרונית, ב.      בחנות יש "חיומט" מכונה שבה הלקוחות בוחרים איזו חיה אהובה עליהם. ג.       לעת עתה נסתפק בכלב וחתול. ד.      כלב וחתול בצורתם הלוגית יורשים מ .animal ה.      הלקוח בוחר חיה וה"חיומט" קורא לבנאי של הקלאס המתאים ופולט מוצר.    תרחיש כזה הוא שימוש  קלאסי בfactory method שיודע בזמן ריצה את מי ליצור, הקליינט לא יודע...
2 תגובות