שלח תשובה

זירת השאלות

613
צפיות
3
תשובות

מחלקה מסוג singletone

,‏ 23 באוקטובר, 2005

שלום,

רציתי לדעת איך הופכים מחלקה ל – singletone (ב C#)

אני יודע שחייבים להגדיר את ה CONSTRACTOR כ PRIVATE על מנת שיווצר

רק מופע אחד מהמחלקה .

מה עוד צריך להגדיר על מנת שזאת תהיה מחלקה singletone?

תודה

תגיות:

3 תשובות

  1. זהר פלד הגיב:

    Singletone design pattern:
    אתה מגדיר Constructor כ private.
    אתה מגדיר משתנה מחלקה (static) בוליאני כ private, שנקרא לו לצורך העניין bObjectExist, ואתה מגדיר מתודה ברמת המחלקה כ public, שנקרא לה לצורך העניין getObject. המתודה הזו תעשה משהו די פשוט:
    תבדוק את הערך של bObjectExist. במידה ו true, תחזיר null ותסתיים. במידה ו false, תשנה אותו ל true, תקרא ל constructor ותחזיר רפרנס לאובייקט.

    זה בעצם כל מה שצריך בשביל ליצור מחלקה מטיפוס Singletone.
    (כמובן, אם אי פעם יתעורר הצורך ליצור מחלקה שניתן ליצור ממנה רק שלושה אובייקטים, כל מה שצריך זה לשנות את המשתנה bObjectExist למספרי, ולבדוק אם הוא קטן משלוש במתודה getObject.)

  2. ניר טייב הגיב:

    חולק עליך
    משתנה המחלקה הפרטי צריך להיות המופע היחידי של המחלקה. המתודה צריכה לבדוק אם הוא null, במידה וכן אז ליצור את האובייקט.
    ואח"כ להחזיר אותו.

    עוד על ה-DP הזה:
    http://www.dofactory.com/Patterns/PatternSingleton.aspx
    (ככלל, אם רוצים לדעת משהו לגבי DP מסויים – כנסו לאתר הזה, יש בו גם דוגמאות קוד ב-C#).

  3. זהר פלד הגיב:

    אתה יודע מה, מקובל עלי.
    האופציה שלך יותר טובה.
    את שלי כתבתי מהזכרון עוד מהקורס java, מאלוהים יודע מתי…  

שלח תשובה