بر هیچ کسی پوشیده نیست که گریدی بوچ واقعا از معرفترین و شناخته شده ترین صاحبنظران در مورد مدل شی گرا در جهان است.آنچه که من در مقاله قبلی نوشتم شاید بتوان بیشتر از دید برنامه نویسی به آن نگاه کرد ، در حالی که گریدی بوچ تمام ابعاد را نگاه می کند ،از تحلیل و طراحی و برنامه نویسی همه را شامل می شود . مقاله من فقط در مورد بخشی از دید شی گرایی در برنامه نویسی است .و اما هدف از این نگارش
در مقاله قبلی خودم باعنوان شی گرایی چیست ، دوستی عزیز نظری نوشته بود که نقل قولی از گریدی بوچ بود . خواستم چند مطلبی اضافه کنم.
حقیقتش اگر بخواهیم دنیای شی گرا را از دیدگاه گریدی بوچ مقایسه کنیم ، باید کتاب جامعی در این مورد نوشته شود اما من مطالب را مختصرا به شکل زیر نقل می کنم :
ازدید گریدی بوچ ارکان مدل شی دارای 4 عنصر اصلی و 3 عنصر فرعی است که به شکل زیر:
الف – عناصر اصلی
1-تجرید (abstraction) : در واقع به نگاه ؛ یک ناظر تاکید می کند ، یعنی هر ناظر در دید تحلیلی خود هر شی را چگونه می بیند هر ناظر چگونه با درک خود آن شی را در دید مفهومی خود از دیگر اشیا متمایز می کند .در اینجا ما از دید تحلیل و طراحی نگاه می کنیم نه از دید برنامه نویس .
2-در برگیری (encapsulation) : همانطور که در مقاله قبلی گفتم فرایند مخفی نگه داشتن تمام جزییات یک شی است . شامل طراحی و تحلیل و برنامه نویسی است .
3-مولفه ای بودن (modularity) : در حقیقت همان مولفه ای بودن سیستم است که منجر به تفکیک سیستم به مولفه های منسجم می کند ، به نظر من در هر سه دیدگاه تحلیل و طراحی و برنامه نویسی وجود دارد.
4-سلسله مراتب (hierarchy) : ما در بحث شی گرایی می دانیم که ممکن است کلاسی شامل کلاسی دیگر باشد و یا کلاسی از کلاس دیگر ارث بری کند . در واقع می توان گفت سلسله مراتب کلاسها هم شامل رابطه شمول و هم وراثت است . و در هر سه دیدگاه طراحی و تحلیل و برنامه نویسی کاربرد دارد.
ب- عناصر فرعی
1-نوع بندی (typing) : در واقع طبقه بندی اشیا است یعنی اگر شیی از کلاس a باشد و شیی از کلاس b داشته باشیم این اشیا متفاوت بدلیل نوع بندی کلاسهای متفاوتشان ، از هم متمایز هستند و در واقع از تداخل تجریدها یعنی از تداخل نوع نگاهها و نگرشهای ناظر جلوگیری می کند ، یعنی ناظر نمی تواند اشیا از کلاسهای متفاوت را در هم بیامیزد.
2-توازی یا هم موجودی (concurrency) : مفهومی است که بیشتر در دنیای برنامه نویسی شی گرا استفاده می شود ، در واقع یعنی استفاده از اشیا مختلف بصورت همزمان .
3-ماندگاری (persistense) : در دنیای برنامه نویسی شی گرا وقتی ما شیی را از یک کلاس ایجا د می کنیم ،آن شی مقداری از فضای حافظه را اشغال می کند . شما با استفاده از خصوصیت ماندگاری مشخص می کنید که چه وقت یک شی ایجاد شود و حافظه به آن اختصاص می یابد و چه وقت آن شی خاتمه می یابد و یا از بین می رود تا دوباره آن فضای حافظه آزاد شود .
و اما سخن آخر
در واقع گرید بوچ در تبیین مدل شی گرایی همه جوانب تحلیل و طراحی و برنامه سازی را در نظر می گیرد که در نوع خود دیدگاهی وسیع و پر محتوایی است .
راستش قرار بود این هفته در مورد کلاسهای اینترفیس و abstract صحبت کنم اما امروز که به محل کار آمدم متوجه شدم که شبکه اینترنت مشکل داره ، خلاصه ما هم شروع کردیم به بررسی مثلا کارشناسانه و زنگ زدیم به شرکت و خلاصه 3 ساعت تمام خودمون را الاف کرده بودیم که ای اینترنت ما چه مشکلی پیدا کرده تا اینکه
ناگهان نظافتچی از راه رسید و گفت مهندس جان امروز داشتم جارو می کردم ، یکی از کابلها در آمد من هم الکی گذاشتم پشت سرور ، ما هم که مونده بودیم چی باید بگیم یه نگاهی انداختیم به پشت سرور و تازه متوجه فاجعه خنده دار شدیم که ای بابا این کابل شبکه ما قطع شده ،
خلاصه اینقدر به بی سوادی خودمان خندیدم که واقعا داشتم دل درد می گرفتم .
واقعا توی این دنیای رایانه چقدر جای پیشرفت داره و من چقدر بی سوادم