تفاوت کلیدی - تجمع در مقابل ترکیب در جاوا
Aggregation یک ارتباط بین دو شی است که رابطه "has-a" را توصیف می کند. ترکیب نوع خاصی از تجمیع است که بر مالکیت دلالت دارد. تفاوت کلیدی بین تجمیع و ترکیب در جاوا این است که اگر شیء حاوی میتواند بدون وجود شیء مالک وجود داشته باشد، یک تجمیع است و اگر شیء موجود بدون وجود شیء مالک وجود نداشته باشد، یک ترکیب است..
برنامه نویسی شی گرا (OOP) یک پارادایم اصلی در توسعه نرم افزار است.برای مدل سازی نرم افزار با استفاده از اشیاء استفاده می شود. اشیاء با استفاده از کلاس ها ایجاد می شوند. یک کلاس از ویژگی ها و متدها تشکیل شده است. چندین شی در نرم افزار وجود دارد. هر شیء از طریق ارسال پیام با یکدیگر همکاری می کند. رابطه بین دو شی به عنوان یک ارتباط شناخته می شود. هم تجمیع و هم ترکیب دو نوع تداعی هستند. رابطه "has-a" توصیف می کند که یک شی می تواند از شی دیگری استفاده کند. تجمیع و ترکیب را می توان در زبان های پشتیبانی کننده OOP پیاده سازی کرد. اگر شیء محتوی بتواند بدون وجود شیء مالک وجود داشته باشد، در این صورت ارتباط بین آن دو شیء یک تجمیع است. اگر شیء محتوی نمی تواند بدون وجود شیء مالک وجود داشته باشد، پس ارتباط بین آن دو شیء یک ترکیب است.
Aggregation در جاوا چیست؟
تجمع نوعی تداعی است. اگر یک کلاس دارای مرجع موجودیت باشد، به عنوان تجمع شناخته می شود. تجمیع نشان دهنده رابطه has-a است.یک شی Student می تواند دارای ویژگی هایی مانند student_id، نام، آدرس باشد. این آبجکت می تواند شی دیگری به نام آدرس با اطلاعات خاص خود مانند شهر، ایالت، کشور نیز داشته باشد. در این شرایط، دانشجو یک آدرس مرجع نهاد دارد. این یک رابطه "دارا" است.
شکل 01: کلاس علامتها
شکل 02: برنامه اصلی برای توصیف تجمع
طبق برنامه فوق، کلاس Marks از سه ویژگی تشکیل شده است که عبارتند از Maths، English و Science. دانش آموز یک شی از Marks دارد.این ویژگی های خاص خود را دارد که نشانه های ریاضی، انگلیسی و علوم است. در روش اصلی، یک شی از Marks ایجاد می شود و مقادیر علامت ها تخصیص می یابد. شی student که s1 است می تواند از شی علامت گذاری که m1 است استفاده کند. بنابراین، دانشآموز و علامتها رابطه «has-a» دارند. شی Marks می تواند بدون شی دانشجو وجود داشته باشد. بنابراین، این یک تجمیع است.
Composition در جاوا چیست؟
ترکیب نوعی تداعی است. شکل خاصی از تجمیع است که بر مالکیت دلالت دارد. فرض کنید دو کلاس به نام های کلاس A و B وجود دارد. اگر شی کلاس B نمی تواند وجود داشته باشد اگر شی کلاس A از بین برود، آنگاه یک ترکیب است. یک کتاب از صفحات زیادی تشکیل شده است. اگر کتاب از بین برود، صفحات نیز از بین می روند. اشیاء صفحه نمی توانند بدون شیء کتاب وجود داشته باشند. به برنامه زیر مراجعه کنید.
شکل 03: کلاس کلاسی
شکل 04: کلاس مدرسه
شکل 05: برنامه اصلی برای توصیف ترکیب
طبق برنامه فوق، Classroom دارای دو ویژگی نام و numOfStudents است. مدرسه مجموعه ای از اشیاء کلاس درس است. در روش اصلی، دو شی Classroom ایجاد می شود. آنها به "کلاس های درس" اضافه می شوند. این «کلاسهای درس» به شی مدرسه منتقل میشوند.در نهایت، نام کلاس و تعداد دانش آموزان با تکرار در مجموعه چاپ می شود. اگر شی School از بین برود، اشیاء Classroom نیز نابود می شوند. این یک نمونه از ترکیب است. همچنین حاوی رابطه "has-a" است و همچنین بر مالکیت دلالت دارد.
رابطه بین تجمع و ترکیب در جاوا چیست؟
Aggregation و Composition دو نوع انجمن هستند و Composition یک نوع تخصصی از Aggregation است. ترکیب زیرمجموعه Aggregation است
تفاوت بین تجمع و ترکیب در جاوا چیست؟
Aggregation در مقابل ترکیب در جاوا |
|
Aggregation ارتباط بین دو شی است که رابطه "دارای" را توصیف می کند. | ترکیب نوع خاصی از تجمیع است که بر مالکیت دلالت دارد. |
استفاده | |
Aggregation زمانی استفاده می شود که یک شی از شی دیگری استفاده می کند. | ترکیب زمانی استفاده می شود که یک شی مالک شی دیگری باشد. |
تاثیر بر اشیاء | |
در تجمیع، از بین بردن شی مالک بر شی حاوی آن تأثیری نخواهد داشت. | در ترکیب، از بین بردن شی مالک بر شی حاوی تأثیر می گذارد. |
خلاصه - تجمع در مقابل ترکیب در جاوا
Aggregation و Composition دو مفهوم در OOP هستند. رابطه "has-a" توصیف می کند که یک شی می تواند از شی دیگری استفاده کند. تجمیع ارتباط بین دو شی است که رابطه "has-a" را توصیف می کند. ترکیب نوع خاصی از تجمیع است که بر مالکیت دلالت دارد.تفاوت بین تجمیع و ترکیب در جاوا این است که اگر شیء حاوی میتواند بدون وجود شیء مالک وجود داشته باشد، یک تجمیع است و اگر شیء موجود بدون وجود شیء مالک وجود نداشته باشد، یک ترکیب است.