נושאים פעיליםנושאים פעילים  הצגת רשימה של חברי הפורוםרשימת משתמשים  חיפוש בפורוםחיפוש  עזרהעזרה
  הרשמההרשמה  התחברותהתחברות RSS עדכונים
תיכנות
RSS UnderWarrior Forums : RSS תיכנות
נושא

נושא: מחלקה מסוג singletone

שליחת תגובהשליחת נושא חדש
כותב
הודעה << נושא קודם | נושא הבא >>
ronen
משתמש מתחיל
משתמש מתחיל


הצטרף / הצטרפה: 15 September 2005
משתמש: מנותק/ת
הודעות: 15
נשלח בתאריך: 23 October 2005 בשעה 15:36 | IP רשוּם
ציטוט ronen

שלום,

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

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

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

מה עוד צריך להגדיר?

תודה

חזרה לתחילת העמוד הצג את כרטיס החבר של ronen חפש הודעות אחרות של ronen
 
ניר
מנהל האתר
מנהל האתר
סמל אישי

הצטרף / הצטרפה: 12 January 2005
מדינה: Israel
משתמש: מנותק/ת
הודעות: 3296
נשלח בתאריך: 24 October 2005 בשעה 01:53 | IP רשוּם
ציטוט ניר

צריך להגדיר פונקציה סטאטית בתוך המחלקה ש:
1. תיצור אובייקט מסוג המחלקה
2. תדאג שבכל פעם נוספת שקוראים לה, היא תחזיר את אותו אובייקט ולא תיצור אובייקט נוסף


__________________
מספר האייסיקיו שלי ו/או כתובת ה-MSN שלי אינם מהווים מוקד תמיכה
חזרה לתחילת העמוד הצג את כרטיס החבר של ניר חפש הודעות אחרות של ניר בקר בדף הבית של ניר
 
ronen
משתמש מתחיל
משתמש מתחיל


הצטרף / הצטרפה: 15 September 2005
משתמש: מנותק/ת
הודעות: 15
נשלח בתאריך: 24 October 2005 בשעה 12:48 | IP רשוּם
ציטוט ronen

היי

תודה על התשובה!!

מצאתי קוד באינטרנט של מחלקה מסוג singletone משהו לא ברור לי ...

// Singleton pattern -- Structural example

                                                             using System 
namespace DoFactory.GangOfFour.Singleton.Structural
                                                                                  }
                                      // MainApp test application    
                                                            class MainApp  
                                                                                }
    
                                                  () static void Main
                                                                        }
      // Constructor is protected -- cannot use new 
                      ()  Singleton s1 = Singleton.Instance
                    ()&nbs p; Singleton s2 = Singleton.Instance  

                                            (  if (s1 == s2      {
        Console.Writ eLine("Objects are the same instance");
      }

                                                 // Wait for user 
                                                ;()  Console.Read 
                                                                     {
                                                                        {

                                                             // "Singleton"

                                                           class Singleton
                                                                               }
                          private static Singleton instance 
                        // Note: Constructor is 'protected'
                                          ()  protected Singleton 
                                                                         }
                                                                         {

                           () public static Singleton Instance
                                                                             }
                                       // Use 'Lazy initialization'
                                             if (instance == null)
                                                                      }
                         ;()  instance = new Singleton 
                                                                      {

                                                return instance;
                                                               {
                                                                   {
                                                                           {

אני מקווה שהקוד ברור...

מה שאני לא מבין זה למה ה constructor במחלקה Singleton הוא protected

זה אסור ב singletone לא?! אני הייתי בטוח שה constructor במחלקה Singleton

חייב להיות private על מנת להבטיח רק מופע אחד ויחיד של המחלקה..

מה קורה במקרה ו 2 תהליכים ניגשים באותו זמן לפונקציה?? נוצרים 2 מופעים לא?!

תודה

חזרה לתחילת העמוד הצג את כרטיס החבר של ronen חפש הודעות אחרות של ronen
 
ניר
מנהל האתר
מנהל האתר
סמל אישי

הצטרף / הצטרפה: 12 January 2005
מדינה: Israel
משתמש: מנותק/ת
הודעות: 3296
נשלח בתאריך: 24 October 2005 בשעה 13:14 | IP רשוּם
ציטוט ניר

protected עובד באותו רעיון של privated, אבל מאפשר הורשה של אובייקטים שגם הם יהיו סינגלטונים.

ctor עם פרמטרים שהוא private מונע הורשת ילדים


__________________
מספר האייסיקיו שלי ו/או כתובת ה-MSN שלי אינם מהווים מוקד תמיכה
חזרה לתחילת העמוד הצג את כרטיס החבר של ניר חפש הודעות אחרות של ניר בקר בדף הבית של ניר
 
ronen
משתמש מתחיל
משתמש מתחיל


הצטרף / הצטרפה: 15 September 2005
משתמש: מנותק/ת
הודעות: 15
נשלח בתאריך: 24 October 2005 בשעה 13:58 | IP רשוּם
ציטוט ronen

היי,

1) אם הייתי משנה את השורה :    private static Singleton instance

ל - private Singleton instance האם זה היה בסדר?

2) אמרת "תדאג שבכל פעם נוספת שקוראים לה, היא תחזיר את אותו אובייקט ולא תיצור אובייקט נוסף" בעצם מה שמבטיח את זה זה השורה :   () static void Main ?

תודה

 

חזרה לתחילת העמוד הצג את כרטיס החבר של ronen חפש הודעות אחרות של ronen
 

אם ברצונך להגיב לנושא זה עליך קודם להתחבר
אם אינך רשום/ה כבר עליך להרשם

  שליחת תגובהשליחת נושא חדש
גרסת הדפסה גרסת הדפסה

קפיצה לפורום
אינך יכול/ה לשלוח נושאים חדשים בפורום זה
אינך יכול/ה להגיב לנושאים בפורום זה
אינך יכול/ה למחוק את הודעותיך ותגוביך בפורום זה
אינך יכול/ה לערוך את הודעותיך ותגובותיך בפורום זה
אינך יכול/ה לצור סקרים בפורום זה
אינך יכול/ה להצביע בסקרים בפורום זה