Observer Pattern VS. Mediator Pattern

28 בJune 2013

אין תגובות
שאלה שנפוצה מאוד,
 
 אם תפקיד הObserver הוא ליידע אובייקט X כאשר אובייקט Y שינה מצב אז מה משמעות הMediator שכאמור תפקידו לתווך בין שני אובייקטים ולהעביר מסרים??
 
לחידוד העניין ממליץ לקפוץ אחורה ולקרוא על Mediator כאן,
ועל Observer כאן.
 
אז נחדד כמה הבדלים:
Observer שזה בעצם Event מתנהג ביחס של אחד ל N,  כשגם יכול להיות 0 בצד הN ,
ז”א שאנו מגדירים תשתית לרישום לאירוע ומי שירצה יירשם ויאזין.
 
מול זה ניצב המדיאטור שתפקידו זה אינקפסולציה והפרדה בין שני רכיבים ידועים מראש במערכת כדי להוריד את התלות.
 
ה Mediator למעשה הוא כלי עזר בארכיטקטורה של תכנה כשנרצה לשמור על עקרונות הSRP.
זה בהחלט נכון שאני יכול לבחור בעצמי באחד משני הרכיבים בבעיה נתונה, ואפילו יותר מזה אני יכול לממש את המדיאטור על גבי תשתית של Observer-Event
חשוב גם להבין שלרוב שימוש בObserver-Event נפוץ מאוד בגלל הנוחות שבו, והמהירות של ההגדרה, אבל זה לא אומר שזה נכון יותר, אולי שאנחנו עצלנים יותר..
 
נוסיף עוד שהמדיאטור משמש בפועל כמנהל התקשורת בין שני הרכיבים , בעוד הObserver מהווה יותר כלי טכני לשליחת הודעות, חלק חשוב מאוד נוסף הוא שבשליחת איוונטים (Observer) צד אחד מאזין לשני, ואילו Mediator מעביר הודעות מצד לצד ממש כמו בשיחת טלפון.
הוסף תגובה
facebook linkedin twitter email

Leave a Reply

Your email address will not be published. Required fields are marked *