בהמשך לפעמים הקודמות,
עוד שימוש שיש לProxies של Interface הוא Remoting:
נניח שיש לנו איזשהו ממשק, למשל:
|
|
כעת יצרנו Proxy לממשק, כלומר יש לנו מחלקה שמנתבת את כל הפונקציות של הממשק לפונקציה בודדת.
|
|
מה שאנחנו מסוגלים לעשות עם זה, זה להעביר את הקריאות האלה למתודה חיצונית – מתודה שתקרא על מחשב אחר למשל.
איך נעשה את זה? נצטרך להמיר את הMethodCallInfo לאיזשהו אובייקט שאפשר להעביר ברשת.
במחשב השני תהיה אפליקציה שתאזין להודעות כאלה ותקרא לפונקציה מתאימה.
בנוסף, אפליקציה זו תחזיר הודעה שמתארת את התוצאה של הפונקציה, למשל מה ערך ההחזר, או האם קפץ Exception.
בפונקציה שאליה נכנס (Handle) נצטרך לבצע את ההמרה של הMethodCallInfo להודעה מתאימה, לשלוח את ההודעה, לקבל את התשובה, ולהכניס לMethodCallInfo את התוצאה שחזרה/Exception שחזר.
קיימים מספר מימושים לרעיון זה, למשל WCF הוא Framework המאפשר ליצור Proxy שיודע לשלוח הודעות SOAP לService מרוחק ולהחזיר תשובה.
המשך יום מיופה כוח טוב.