אז הכרנו בפעם שעברה קצת מה זה Immutable Object.
יכול להיות שהשתכנעתם, ואתם רוצים לרוץ לממש בעצמכם Immutable Object.
בוודאי תתאכזבו לגלות כי אין איזשהו ממשק שאפשר לרשת ממנו המציין שאובייקט הוא Immutable.
במקום זאת קיים הKeyword ששמו readonly המציין כי Field מסוים ניתן לאתחול רק בConstructor שלו. אם ננסה לאתחל אותו מחוץ לConstructor, נקבל שגיאת קימפול.
למשל:
|
|
כעת, אם ננסה לשנות את הערכים של הFields שלנו במקום אחר בקוד, לא נצליח:
|
|
(ראו גם טיפ מספר 14)
לכן הדרך המומלצת לממש Immutable object היא ע"י יצירת מחלקה שכל השדות שלה הן readonly.
שימו לב שזה לא מספיק, כי במידה ואחד הFields הוא לא Immutable בעצמו, נוכל לשנות את הField, ולכן גם את האובייקט עצמו. לכן חשוב לדאוג שגם כל הFieldים של המחלקה שלנו יהיו בעצמם Immutable…
המשך יום בלי יותר מדי שינויים טוב