אני יכול להגיד שInner Class מחריב את עקרונות הOOP בדיוק כמו שההורשה שדיברתי עליה מחריבה.ושוב הוא לא חייב הורשה פה, הוא תמיד יכול לעשות serialize לנתוני החיבור ולהעביר אותם לMessage הבעיה העיקרית פה, היא הפעולה הנוספת שתתבצע וזה ההעברה של הנתונים וביצוע של Unserialize הוא גם יכול לא לעשות סריאליזציה ולהעביר את האובייקט כמו שהוא, אבל אני עדיין לא חושב שזה פתרון חכם מדי, להעביר את נתוני החיבור שלך כול פעם שתרצה להשתמש בMessage, אם נתחייס לזה בצורה ספציפית אז נתוני חיבור(לאחר שהחיבור נפתח) אמורים ליהיות מועברים פעם אחת, ונגישים תמיד באותו רגע...
חוץ מזה יש קשר בין Session לMessages החיבור עצמו מכיל מידע על משתמש אחד או יותר, שהSession של החיבור שלו שייך ישירות לכול הודעה והודעה, וככה גם כול הודעה יודעת לאן היא צריכה להגיע.
עכשיו לגבי הInner Class של Message בתוך Session זה באמת לדעתי פתרון שהוא לא נכון עיצובית, תכנונית, וכול פרמטר שמשתייך לארכיטקטורה של תוכנה, אני בטוח שיש פתרון יפה יותר, אולי אפילו ליצור מחלקה נוספת שתאחד את כול האובייקטים, משהו כמו Registry שדרכו הוא יוכל לגשת לכול האובייקטים ולאתחל אותם, שוב אולי הInner Class יעבוד מעולה, אבל אני לא בעדו בכלל.