200 likes | 883 Views
رابطه بين کلاسها. روابط اصلی بين کلاسها عبارتند از : رابطه انجمنی ( Association Relationship ) رابطه تجمعی ( Aggregation Relationship ) رابطه وراثت ( Inheritance,Generalization / Specialization,IS -A Relationship ) رابطه وابستگی( Dependency Relationship ). رابطه انجمنی.
E N D
رابطه بين کلاسها روابط اصلی بين کلاسها عبارتند از : • رابطه انجمنی (Association Relationship) • رابطه تجمعی (Aggregation Relationship) • رابطه وراثت (Inheritance,Generalization/Specialization,IS-A Relationship) • رابطه وابستگی(Dependency Relationship)
رابطه انجمنی • روابط معنائی (Semantic)بين کلاسها می باشند. • يک رابطه انجمنی به يک کلاس امکان می دهد تا درباره صفات و رفتار عمومی کلاس ديگر اطلاعات لازم را بداند. House Person • در مثال فوق کلاس شخص و خانه از صفات و رفتار عمومی يکديگر مطلع می باشند(رابطه دوطرفه).
رابطه انجمنی(ادامه) • ايجاد و نگاهداری روابط انجمنی يک طرفه آسانتر می باشد. همچنين در روابط انجمنی يک طرفه کلاسهائی را که می توانند مجددا استفاده (reuse) گردند را آسانتر می توان پيدا نمود. House Person • در مثال فوق کلاس شخص از صفات و رفتار عمومی کلاس خانه اطلاع دارد.
استفاده مجدد و روابط انجمنی A B Easier to reuse Harder to reuse
رابطه انجمنی(ادامه) کد ايجاد شده برای يک رابطه انجمنی دو طرفهدر ابزار Rose House. java Person. java //Source file : Houe.java public class House{ public Person m_person; House(){ } } //Source file : Person. java public class Person{ public House m_house; Person(){ } }
رابطه انجمنی(ادامه) کد ايجاد شده برای يک رابطه انجمنی يک طرفهدر ابزار Rose House. java Person. java //Source file : Houe.java public class House{ House(){ } } //Source file : Person. java public class Person{ public House m_house; Person(){ } }
رابطه انجمنی(ادامه) • در روابط انجمنی معنی رابطه و درجه کارديناليتی آن مشخص می گردد. • درجه کارديناليتی : 1..0 *..1 1 * A B A B A B A B يک نمونه از Aهمواره با هيچ ، يا فقط يک نمونه از B ارتباط دارد. يک نمونه از Aهمواره با يک نمونه يا بيشتر ازB ارتباط دارد. يک نمونه از Aهمواره با يک نمونه ازB ارتباط دارد. يک نمونه از Aهمواره با هيچ ،يک نمونه، يا بيشتراز B ارتباط دارد.
رابطه وابستگی House Person • در مثال فوق شخص به خانه وابسته است. • در رابطه انجمنی شخص يک صفت خانه را در خود دارد .برای ارسال پيام به خانه، شخص تنها به صفت خانه خود توجه می نمايد، ليکن در رابطه وابستگی شخص اين صفت را در خود ندارد و می بايست با استفاده از رويکردهای ديگر متوجه خانه شود .اين رويکردها عبارتند از : • خانه بصورت سراسری(Global) تعريف شود. • خانه به عنوان يک شی درون يکی از متدهای شخص ( بصورت محلی) تعريف گردد. • خانه بصورت يک پارامتر به برخی از متدهای عضو شخص ارسال گردد.
رابطه تجمعی در اين رابطه يک کلاس از ترکيب تعدادی کلاس ديگر تشکيل شده است. ادبيات زير در شیء گرائی برای اين رابطه استفاده می گردد: )پايين به بالا)PART-OF )بالا به پايين) HAS-A مثال: A Car HAS-A Door A Tire is PART-OF a Car
رابطه تجمعی(ادامه) 1 1 1 HAS-A PART-OF 4 2..4 1
رابطه وراثت • همانگونه که ذکر نموديم سلسله مراتب عبارت است از مرتب ساختن تجريدها در سطوح مختلف. • ادبيات زير در شی گرائی جهت اين نوع رابطه استفاده می گردد : )پايين به بالا) IS-A /Generalized-to (بالا به پايين) Specialized-to
رابطه وراثت (ادامه) IS-A Specialized-to