עבור לתוכן

הקמת מערכת callbacks בין הלוגיקה לGUI

Featured Replies

פורסם

שלום יש לי שאלה, אני מתכנת ב C# אבל זה כנראה יהיה תקף לכל שפה.

אני כותב אפליקציה, היא בנוייה מ GUI ומלוגיקה. עכשיו קראתי איפשהוא שהדרך לאינטרקציה בין שתי המרכיבים הללו זה דרך ה callbacks. השאלה שנשאלת היא מי מספק את ה callbacks? כאילו מי מגדיר את ה delegate ו events דרכם הלוגיקה תרצה לבקש מה GUI לצייר משהוא?

האם ה events (שהם בעצם delegates לפונקציות בתוך ה GUI) יהיו חלק ממשתני הלוגיקה או משתני ה GUI ויספקו כ public ללוגיקה (או דרך getters)?

כלומר דרך אחת שאני רואה לעשות את זה, זה להגדיר מספר כלשהוא (תלוי במס' ה callbacks) של events כ static בתוך הלוגיקה ואז כשה GUI יוצר את ה לוגיקה הוא שם ערכים ל static events של הלוגיקה (או לעשות אותם private ואז דרך הבנאי). ואחרי זה כל פעולה שדורשת עידכון של ה GUI מהלוגיקה תעשה דרך ה events הללו.

דרך אחרת שאני רואה זה הפוך, ה GUI מגדיר events שהם private, בעת היצירה שלו הוא מגדיר פונקציות ך events הללו, וגם מגדיר Public getter לכל event ואז כל עידכון של ה GUI דרך הלוגיקה יעשה דרך ה public event getter של ה GUI.

תודה רבה מראש.

פורסם

בעקרון, הלוגיקה צריכה לעבוד כאילו אין GUI. הלוגיקה היא חבילה עצמאית שיודעת לעשות דברים לפי פקודות שנותנים לה (הפונקציות). הלוגיקה מעדכנת את המצב שלה באמצעות אירועים. ה-GUI צריך להירשם לאירועים האלה כדי לדעת מה להציג ומתי.

באופן זה, הלוגיקה היא עצמאית לחלוטין מה-GUI, ולא תלויה בו (וככה אפשר נניח לכתוב command line interface בקלות, ע"י החלפת ה-GUI, בלי לגעת בלוגיקה בכלל).

פורסם
  • מחבר

כלומר הלוגיקה צריכה להחזיק delegates ו events שלהם היא קוראת בעת מורע כלשהוא (כגון הדפסת הודעה וכו') וה GUI מספק פונקציות אמיתיות ל events הללו (דרך קונסטרוקטור, גישה ישירה אם הם static, getters and setters של הלוגיקה וכו') נכון?

לא ממש קשור אבל, מה נניח קורא במצב שהלוגיקה תלויה בהגדרות מתוך ה GUI? האם יש צורך להגדיר callback לקבלת הגדרות? וא להתשמש במתווח כמו קובץ הגדרות?

פורסם

כן.

אם הלוגיקה צריכה לקבל הגדרות כלשהן מה-GUI, אז מה שצריך לעשות הוא שהלוגיקה תספק פונקציות שמגדירות לה את ההגדרות האלה, וה-GUI קורא לפונקציות האלה.

פורסם
  • מחבר

שניצל תודה רבה!

madix

את MVC אני מכירף לא חשבתי יל השימוש שלו פה. ותודה רבה על הלינק ל OBSERVER. תודה.

פורסם

שניצל תודה רבה!

madix

את MVC אני מכירף לא חשבתי יל השימוש שלו פה. ותודה רבה על הלינק ל OBSERVER. תודה.

OBSERVER הוא DESIGN PATREN שמיותר ב C# עקב EVENTS (למעט כמה מקרים)

בעקרון הGUI אמור להכיר את ה CONTROLER

הCONTROLER אמור להכיר את הMOUDLE כך יש לך אי צמידות בין התתי פרוייקטים

ארכיון

דיון זה הועבר לארכיון ולא ניתן להוסיף בו תגובות חדשות.

דיונים חדשים