مبانی شی گرائی
(بخش اول)
فهرست:
مدل فرايند شی گرا
اصول چهار گانه شی گرايي
تعريف شی
تعريف کلاس
نوع داده مجرد
-------------------------------------
مدل فرايند شی گرا:
بهترين الگو برای مهندسی نرم افزار OO ، مدل فرايند CBD می باشد.
اصول چهارگانه شی گرائی:
همانگونه که اشاره گرديد شی گرائی بر اصل زير استوار است :
تجريد (Abstraction)
واحدبندی ((Modularity
محصور سازی (Encapsulation)
سلسله مراتب (Hierarchy)
در بخش های گذشته اصول تجريد و واحدبندی توضيح داده شد ، اينک به بيان دو اصل ديگر می پردازيم .
محصور سازی:
محصور سازی عبارت از عدم پذيرش تاثيرات ناخواسته و يا کنترل نشده و محدود نمودن طرق دسترسی جهت استفاده از يک شی است.
با توجه به اصل فوق هر کلاس از دو بخش زير تشکيل می گردد:
واسط (Interface) : توصيفی از سرويسهائی که اين شی در اختيار Clientها قرار می دهد.
پياده سازی : ساختمان داده ها + الگوريتم ها
http://alladin.persiangig.com/image/narm1/narm47.JPG
مزايای محصور سازی:
برخی از مزايای محصور سازی عبارتند از :
جلوگيری از دسترسی های عير مجاز
امکان تغيير در محتويات کلاس بدون آنکه خللی به استفاده کنندگان وارد نمايد (به شرط آنکه واسطهای کلاس تغيير ننمايد)
افزايش قابليت استفاده مجدد
قاعده باز و بسته :
ماژول باز : ماژولی که آماده اعمال تغييرات باشد.
ماژول بسته : ماژولی که امکان تغييرات در آن وجود ندارد.
يک ماژول مناسب برای تعريف کننده آن باز و برای استفاده کننده آن بسته است.
سلسله مراتب:
سلسله مراتب عبارت از مرتب ساختن تجريدها در سطوح مختلف است.
سلسله مراتب باعث افزايش فهم مساله می گردد.
انواع سلسله مراتب :
سلسله مراتب ساختار کلاس (IS-A)
سلسله مراتب ساختار شی (PART-OF)
سطوح تجريد مختلف در سطوح مختلف سلسله مراتب ظاهر می گردد.
سلسله مراتب ساختار کلاس (IS-A):
نام ديگر اين نوع سلسله مراتب تخصيص / تعميم
(Generalization/Specialization)
می باشد.
وراثت مهمترين شکل سلسله مراتب IS-A می باشد.
وراثت عبارت است از رابطه بين چند کلاس که در آن يک کلاس در ساختار ، رفتار يا هر دو با يک کلاس (Single Inheritance) يا چند کلاس (Multiple Inheritance) ديگر شرکت دارد.
کلاس فرزند يک تخصيص از کلاس عمومی تر(کلاس پدر) را نمايش می دهد.
وراثت با اصل پنهان سازی اطلاعات در تضاد است.