none
design patterns RRS feed

  • שאלה

  • factory mathod: הבנתי שתבנית עיצוב זו מאפשרת לי ליצור אובייקט מבלי להכיר את המחלקה שלו. איך ייתכן דבר כזה?

    ואם יש מחלקה אבסטרקטית שכולם יורשים ממנה - נישמע כמו פולימורפיזם רגיל..מה בכל זאת ההבדל?

    תודה רבה!!!!

    יום שלישי 02 אוקטובר 2012 14:06

תשובות

  • הי שירלי,

    ראשית, כל ה-dp של factory אכן משתמשים בסופו של דבר ביכולת של התייחסות בקוד ל-derived class כאל ה-base class (פולימורפיזם). ה-dp של factory מדבר על הטכניקה שבאמצעותה אני יכול ליצור את האובייקט הרצוי במידה ובזמן הפיתוח אני לא רוצה להתייחס למימוש ספציפי של אחת המחלקות.

    לדוגמה בעבודה עם בסיס נתונים, אני לא רוצה להתייחס באופן ספציפי להאם אני עובד עם אורקל או sql server, אז בקוד אני אשתמש ב-base classes כמו dbcommand ו-dbconnection - תוך שימוש בפולימורפיזם שקיים בדוטנט. בפועל, כאשר אני אריץ את המערכת, הקוד שלי יפנה ל-factory method שיספק את האובייקט הסופי שאיתו אני עובד בפועל, בין אם sqlcommand או oraclecommand, בהתאם לאיך שה-factory עובד (לדוגמה, ע"י שליפת סוג המחלקה שצריך לעשות לה new מקונפיגורציה).


    Please mark posts as answers/helpful if it answers your question.
    Senior Consultant on WCF, ASP.NET, Siverlight, and Entity Framework. Author of Microsoft's Official WCF 4 Course. Co-author of the Microsoft HPC/Azure burst whitepaper.
    Visit my blog: http://blogs.microsoft.co.il/blogs/idof

    שבת 13 אוקטובר 2012 07:25
    מנחה דיון

כל התגובות

  • הי שירלי,

    ראשית, כל ה-dp של factory אכן משתמשים בסופו של דבר ביכולת של התייחסות בקוד ל-derived class כאל ה-base class (פולימורפיזם). ה-dp של factory מדבר על הטכניקה שבאמצעותה אני יכול ליצור את האובייקט הרצוי במידה ובזמן הפיתוח אני לא רוצה להתייחס למימוש ספציפי של אחת המחלקות.

    לדוגמה בעבודה עם בסיס נתונים, אני לא רוצה להתייחס באופן ספציפי להאם אני עובד עם אורקל או sql server, אז בקוד אני אשתמש ב-base classes כמו dbcommand ו-dbconnection - תוך שימוש בפולימורפיזם שקיים בדוטנט. בפועל, כאשר אני אריץ את המערכת, הקוד שלי יפנה ל-factory method שיספק את האובייקט הסופי שאיתו אני עובד בפועל, בין אם sqlcommand או oraclecommand, בהתאם לאיך שה-factory עובד (לדוגמה, ע"י שליפת סוג המחלקה שצריך לעשות לה new מקונפיגורציה).


    Please mark posts as answers/helpful if it answers your question.
    Senior Consultant on WCF, ASP.NET, Siverlight, and Entity Framework. Author of Microsoft's Official WCF 4 Course. Co-author of the Microsoft HPC/Azure burst whitepaper.
    Visit my blog: http://blogs.microsoft.co.il/blogs/idof

    שבת 13 אוקטובר 2012 07:25
    מנחה דיון
  • שלום.

    נשמח אם תעדכני אותנו בסטטוס של השאלה.

    אם קבלת תשובה, אנא לחצי על 'סמן כתשובה'

    תודה


    בהצלחה, ואם עזרתי, לחץ על 'סמן כתשובה', וסמן את התשובה כמועילה.

    יום חמישי 08 נובמבר 2012 07:40