?design pattern, anyone
מחפש שם של DP (יש כאן כמה, ככל הנראה) שמתאימים לתרחיש הבא: יש לי Windows Service שתפקידו בעולם לוודא שתהליכים מסויימים ב DB - אכן מתרחשים. במידה שהם לא מתרחשים - הוא שולח הודעה במייל למישהו. נקרא למחלקה שבודקת את ה DB בשם WatchDog ולמחלקה ששולחת את המייל - Alerter. בסיפור הזה זה ממש לא משנה מה קורה ב Alerter, וברור שאפשר להחליף Alerter באחר לפי interface או abstract class משותף (מי אמר strategy?) מה שחשוב לי כאמור זה ה WatchDog: במידה שה WatchDog מוצא שה DB לא עובד כמצופה (הוא צריך להחזיק state כדי לבצע השוואות לעומת תמונת המצב האחרונה) - הוא מוציא alert דרך ה alerter. אבל אם הוא דוגם שוב את ה DB - אין לי צורך שיוציא alert נוסף. למעשה, אם אחרי X פעמים רצופות ה WatchDog קיבל "כשלים" מה DB - אני מעוניין להחליף אותו ב WatchDog אחר. ה WatchDog השני - יוצא מתוך נקודת הנחה שה DB כרגע לא מתפקד כראוי, ולכן לא דוגם את ה DB בתדירות גבוהה כמו הראשון. יתרה מזו - הוא מוציא alert רק פעם בשעה (נניח). מה שאני מחפש זה pattern שיאפשר לי להחליף בין WatchDogs בהתאם לתרחיש המתואר. חשבתי על State, אבל אני לא בטוח שזה הכיוון. בגדול, אני מעוניין להגיע למצב שבו WatchDog אחד לא מכיר את השני, אלא יש איזה controller שמחליט באיזה להשתמש עכשיו. אשמח לשמוע מה דעתכם בעניין. תודה
מחפש שם של DP (יש כאן כמה, ככל הנראה) שמתאימים לתרחיש הבא: יש לי Windows Service שתפקידו בעולם לוודא שתהליכים מסויימים ב DB - אכן מתרחשים. במידה שהם לא מתרחשים - הוא שולח הודעה במייל למישהו. נקרא למחלקה שבודקת את ה DB בשם WatchDog ולמחלקה ששולחת את המייל - Alerter. בסיפור הזה זה ממש לא משנה מה קורה ב Alerter, וברור שאפשר להחליף Alerter באחר לפי interface או abstract class משותף (מי אמר strategy?) מה שחשוב לי כאמור זה ה WatchDog: במידה שה WatchDog מוצא שה DB לא עובד כמצופה (הוא צריך להחזיק state כדי לבצע השוואות לעומת תמונת המצב האחרונה) - הוא מוציא alert דרך ה alerter. אבל אם הוא דוגם שוב את ה DB - אין לי צורך שיוציא alert נוסף. למעשה, אם אחרי X פעמים רצופות ה WatchDog קיבל "כשלים" מה DB - אני מעוניין להחליף אותו ב WatchDog אחר. ה WatchDog השני - יוצא מתוך נקודת הנחה שה DB כרגע לא מתפקד כראוי, ולכן לא דוגם את ה DB בתדירות גבוהה כמו הראשון. יתרה מזו - הוא מוציא alert רק פעם בשעה (נניח). מה שאני מחפש זה pattern שיאפשר לי להחליף בין WatchDogs בהתאם לתרחיש המתואר. חשבתי על State, אבל אני לא בטוח שזה הכיוון. בגדול, אני מעוניין להגיע למצב שבו WatchDog אחד לא מכיר את השני, אלא יש איזה controller שמחליט באיזה להשתמש עכשיו. אשמח לשמוע מה דעתכם בעניין. תודה