עבור לתוכן
View in the app

A better way to browse. Learn more.

HWzone

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

הקמת מערכת 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 כך יש לך אי צמידות בין התתי פרוייקטים

ארכיון

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

דיונים חדשים

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.