הקמת מערכת callbacks בין הלוגיקה לGUI - תכנות - HWzone פורומים
עבור לתוכן
  • צור חשבון

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


MasterDK

Recommended Posts

שלום יש לי שאלה, אני מתכנת ב 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 לקבלת הגדרות? וא להתשמש במתווח כמו קובץ הגדרות?

קישור לתוכן
שתף באתרים אחרים

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

madix

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

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

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

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

קישור לתוכן
שתף באתרים אחרים

ארכיון

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

×
  • צור חדש...