کتاب برنامه نویسی شی گرا
کتاب برنامه نویسی شی گرا نوشته سارنگ قربانیان، سید مهدی عمادی، داود رفیعی و سید امید صفری است که در سه فصل تنظیم شده است.
در فصل اول کتاب اطلاعات پایه و مفاهیم اصلی شی گرایی آمده است. این بخش شامل تعاریف اولیه از شی گرایی و تعریف داده های آبستره و شروع یک معماری برای نرم افزار خواهد بود. مقدمات شناخت کامپیوتر، اجزای اصلی سیستم کامپیوتری، تعریف داده و عملگر و آشنایی با انجام عملیات و دستورها روی داده ها مطالبی هستند که در این فصل آمده اند.
فصل دوم به آشنایی با شی گرایی اختصاص داده شده است. در این فصل مقدمات شناخت شی گرایی توضیح داده شده اند. کلاس و کاربرد آن، و معماری نرم افزار تعریف شده اند. اجزای اصلی شی گرایی نیز بررسی شده و داده در شی گرایی تعریف شده اند. قوانین خاص شی گرایی نیز در همین فصل آمده است. نحوه مدلسازی داده با طراحی نمودارهای مدلساز توضیح داده شده اند.
روابط بین داده ها و رابطه IS-A در این فصل تعریف شده اند. محدوده دسترسی ها به داده توضیح داده شده است. پیاده سازی رفتار، پیاده سازی وراثت، پیاده سازی چندگانگی، پیاده سازی انتزاع، پیاده سازی جایگزینی، خصلت و عبارتهای لامدا همه تعریف و توضیح داده شده اند. همچنین مجازی بودن داده ها یا virtualization نیز توضیح داده شده است.
دلیل بیان معماری نرم افزار در فصل دوم این است که از برنامه های متکی بر تابع و تابعی استفاده نکنیم و دیدگاه برنامه نویسی را به سمت تعریف رفتار توابع و بکارگیری آنها در اشیاء پیش ببریم. معماری باعث می شود تا برنامه های مبتنی بر شی گرایی براحتی و بصورت ماجول های مختلف و با دید کپسوله سازی و همچنین مخفی سازی داده پیاده سازی شوند.
فصل سوم به کاربردهای علمیاتی در برنامه سازی و مثالهای اجرایی در زبان C# پرداخته است. برنامه نویسی برای آرایه ها، کاربرد متدها، بحثهای پیشرفته شی گرایی و ایجاد ساختارهای داده ای مبتنی بر شی گرایی همه آموزش داده شده اند. در این بخش مثالهای عملی از مباحث مقدماتی تا پیشرفته از برنامه نویسی را خواهید داشت. بیشتر سعی بر این بوده که با کاربرد مفاهیم و قوانین فصلهای قبلی آشنایی کاملتری پیدا کنید و در کاربرد آنها مسلط تر شوید.
بیشتر مثالهای این بخش با اجرا و خروجی همراه است و سعی بر این است که شما جایگاه قوانین برنامه نویسی را بویژه دستورالعمل های آن را در متن بنرامه بدانید. سعی بر این نیست که در این بخش برای شما مطالب مجددا توضیح داده شوند بلکه سعی در نحوه استفاده از آنهاست و کمتر به توضیح برنامه پرداخته می شود. بهتر است با نتایج خروجی برنامه ها متن برنامه را قدم به قدم کنترل و بررسی کنید.
