שימו לב כיצד הobserver שיוזם את השינוי ב subject דוחה את השינוי בעצמו עד לאחר שה observer מודיע לו על העדכון. כמו כן, notify() לא תמיד נקראת על ידי ה subject עצמו. היא יכולה להיקרא על ידי observer או על ידי אובייקט מסוג אחר. בסעיף המימוש נראה מספר וריאציות ליישום.
השלכה אחת חיובית של זה היא שמכיוון שה coupling
בין ה subject וה observer ים אינו הדוק, הם יכולים להשתייך לשכבות אבסטרקציה שונות במערכת שלנו. לדוגמה, subject מרמת אבסטרקציה נמוכה (למשל: אובייקט שמחזיק נתונים בגיליון אלקטרוני) יכול לתקשר עם observer מרמת אבסטרקציה גבוהה (למשל: האובייקט שמייצג את הגרף) ועל ידי כך נשמר המבנה השכבתי של המערכת.
אם ה subject וה observer לא היו מופרדים, היינו נתקלים באחת משתי אפשרויות לא רצויות לנו: או שהאובייקט המתקבל היה נפרש על שתי שכבות, ובכך מפר את ה layering , או שהוא היה מאולץ לחיות בשכבה אחת בלבד ובכך מקשה עלינו להגיע לרמת האבסטרקציה המבוקשת.
תמיכה ב broadcast communication - בניגוד לבקשות רגילות, בהודעה ש subject שולח אין צורך לפרט למי היא מיועדת. היא משודרת אוטומטית לכל האובייקטים שמעונינים בה ונרשמו מראש על מנת לקבלה. ל subject זה לא חשוב כמה אובייקטים מעונינים קיימים ממנו שמחכים לשמוע הודעה. הוא פשוט משדר לכל מי ש"נרשם" אצלו. זה נותן חופש להוסיף ולהוריד observer ים בכל רגע נתון. ה observer עצמו יחליט אם לטפל בבקשה או להתעלם ממנה אך השידור מתבצע לכולם.
שרשרת עדכונים בלתי צפויים - מכיוון שה observer ים אינם יודעים אחד על קיומו של השני אין להם ידיעה לגבי המחיר הכולל של שינוי כלשהו שהם יערכו ב subject. פעולת עדכון קטנה ולא מזיקה למראית עין יכולה לגרום לשרשרת עדכונים של כל ה observer ים וכל האובייקטים התלויים בהם, וכן הלאה...
במקרים חמורים יותר, יחסי תלות שאינם מוגדרים או מתוחזקים היטב עלולים להוביל לשרשראות של עדכונים מיותרים שקשה להתחקות אחריהם. אחד הגורמים שמחמירים בעיה זו היא העובדה שפרוטוקול עדכון פשוט אינו מפרט
מה השתנה ב subject . ללא פרוטוקול נוסף שיעזור ל observer ים לגלות מה השתנה באובייקט הם עלולים לעבוד קשה במטרה לגלות מה היה השינוי.