مبانی شی گرائی
(بخش دوم)
----------------------------------------------------------------------
فهرست:
- چگونگی برقراری روابط ميان اشياء
- روابط ميان کلاسها
----------------------------------------------------------------------
ارتباط بين اشياء:
* ارتباط بين اشياء و استفاده از سرويسهای آنها از طريق مکانيزم تبادل پيام (Message Passing) صورت می پذيرد.
* هر پيام عبارت از يک درخواست از طرف سرويس گيرنده به سرويس دهنده برای اجرای يک عمل می باشد.
تطابق درخواست (Request) و امضای روش(Method Signature) می بايست در هر فراخوانی بررسی گردد.
* سرويس دهنده به دو صورت می تواند نتايج را به سرويس گيرنده اعلام نمايد :
با استفاده از مقدار بازگشتی
با استفاده از تغيير مقادير پارامترها
* در زمان اجرای برنامه به هر شیء حافظه ای تخصيص داده می شود که شامل جدولی بنام انتخاب کننده پيام (Message Selector) می باشد.
* وظيقه جدول مذکور نگاشت نام عمل به آدرس شروع آن در حافظه اصلی می باشد.
رابطه بين کلاسها:
روابط اصلی بين کلاسها عبارتند از :
رابطه انجمنی (Association Relationship)
رابطه تجمعی (Aggregation Relationship)
رابطه وراثت (Inheritance,Generalization/Specialization,IS-A Relationship)
رابطه وابستگی(Dependency Relationship)
رابطه انجمنی:
روابط معنائی (Semantic)بين کلاسها می باشند .
يک رابطه انجمنی به يک کلاس امکان می دهد تا درباره صفات و رفتار عمومی کلاس ديگر اطلاعات لازم را بداند.
در مثال فوق کلاس شخص و خانه از صفات و رفتار عمومی يکديگر مطلع می باشند(رابطه دوطرفه).
ايجاد و نگاهداری روابط انجمنی يک طرفه آسانتر می باشد. همچنين در روابط انجمنی يک طرفه کلاسهائی را که می توانند مجددا استفاده (reuse) گردند را آسانتر می توان پيدا نمود.
در مثال فوق کلاس شخص از صفات و رفتار عمومی کلاس خانه اطلاع دارد.
استفاده مجدد و روابط انجمنی:
کد ايجاد شده برای يک رابطه انجمنی دو طرفه در ابزار Rose
کد ايجاد شده برای يک رابطه انجمنی يک طرفه در ابزار Rose
در روابط انجمنی معنی رابطه و درجه کارديناليتی آن مشخص می گردد.
درجه کارديناليتی :
علاقه مندی ها (Bookmarks)