Հիմնական տարբերություն – ագրեգացիա ընդդեմ կոմպոզիցիայի Java-ում
Ագրեգացիան երկու օբյեկտների միջև ասոցիացիա է, որը նկարագրում է «has-a» հարաբերությունը: Կազմը ագրեգացիայի ավելի կոնկրետ տեսակն է, որը ենթադրում է սեփականություն: Java-ում ագրեգացիայի և կոմպոզիցիայի հիմնական տարբերությունն այն է, որ եթե պարունակվող օբյեկտը կարող է գոյություն ունենալ առանց սեփականության օբյեկտի գոյության, դա ագրեգացիա է, և եթե պարունակվող օբյեկտը չի կարող գոյություն ունենալ առանց սեփականատիրոջ առկայության, դա կոմպոզիցիա է:.
Օբյեկտ-կողմնորոշված ծրագրավորումը (OOP) ծրագրային ապահովման մշակման հիմնական պարադիգմ է:Այն օգտագործվում է ծրագրային ապահովման մոդելավորման համար՝ օգտագործելով օբյեկտներ: Օբյեկտները ստեղծվում են դասերի միջոցով: Դասը բաղկացած է հատկություններից և մեթոդներից: Ծրագրային ապահովման մեջ կան բազմաթիվ օբյեկտներ: Յուրաքանչյուր օբյեկտ համագործակցում է միմյանց հետ հաղորդագրություն փոխանցելու միջոցով: Երկու օբյեկտների հարաբերությունները հայտնի են որպես ասոցիացիա: Ե՛վ ագրեգացումը, և՛ կազմը ասոցիացիայի երկու տեսակ են: «Ունի-ա» հարաբերությունը նկարագրում է, որ մի օբյեկտ կարող է օգտագործել մեկ այլ օբյեկտ: Համախմբումը և կոմպոզիցիան կարող են իրականացվել OOP աջակցող լեզուներով: Եթե պարունակվող օբյեկտը կարող է գոյություն ունենալ առանց սեփականության օբյեկտի գոյության, ապա այդ երկու օբյեկտների միջև կապը ագրեգացիա է: Եթե պարունակվող օբյեկտը չի կարող գոյություն ունենալ առանց սեփական օբյեկտի գոյության, ապա այդ երկու օբյեկտների միջև կապը կոմպոզիցիա է։
Ի՞նչ է ագրեգացիան Java-ում:
Ագրեգացիան ասոցիացիայի տեսակ է: Եթե դասը ունի կազմակերպության հղում, այն հայտնի է որպես ագրեգացիա: Ագրեգացիան ներկայացնում է ունի-հարաբերություն:Student օբյեկտը կարող է ունենալ այնպիսի հատկություններ, ինչպիսիք են student_id, անունը, հասցեն: Այս օբյեկտը կարող է ունենալ նաև մեկ այլ օբյեկտ, որը կոչվում է հասցե՝ իր տեղեկություններով, ինչպիսիք են քաղաքը, նահանգը, երկիրը: Այս իրավիճակում Ուսանողն ունի կազմակերպության տեղեկատու հասցե: Դա «ունի-ա» հարաբերություն է։
Գծապատկեր 01. Նիշերի դաս
Նկար 02. Ագրեգացիան նկարագրելու հիմնական ծրագիր
Ըստ վերոնշյալ ծրագրի՝ դասի Marks-ը բաղկացած է երեք հատկությունից, որոնք են՝ Maths, English և Science նշանները: Ուսանողն ունի նշանի առարկա:Այն ունի իր սեփական հատկությունները, որոնք մաթեմատիկայի, անգլերենի և գիտության նշաններ են: Հիմնական մեթոդում ստեղծվում է Marks-ի օբյեկտ և նշանակվում են նշանների արժեքներ: Ուսանողի օբյեկտը, որը s1 է, կարող է օգտագործել նշանների օբյեկտը, որը m1 է: Հետևաբար, Ուսանողը և Նշանները ունեն «ունի-ա» հարաբերությունները: Marks օբյեկտը կարող է գոյություն ունենալ առանց Student Object-ի: Հետևաբար, դա ագրեգացիա է։
Ի՞նչ է կոմպոզիցիան Java-ում:
Կոմպոզիցիան ասոցիացիայի տեսակ է: Դա ագրեգացիայի հատուկ ձև է, որը ենթադրում է սեփականություն: Ենթադրենք, որ կան երկու դասեր, որոնք կոչվում են A և B դասեր: Եթե B դասի օբյեկտը չի կարող գոյություն ունենալ, եթե A դասի օբյեկտը ոչնչացվի, ապա դա կոմպոզիցիա է: Գիրքը բաղկացած է բազմաթիվ էջերից։ Եթե գիրքը ոչնչացվի, էջերն էլ կկործանվեն։ Էջի օբյեկտները չեն կարող գոյություն ունենալ առանց գրքի օբյեկտի: Տե՛ս ստորև ներկայացված ծրագիրը։
Գծապատկեր 03. Դասարանական դաս
Նկար 04. Դպրոցական դասարան
Նկար 05. Կազմը նկարագրելու հիմնական ծրագիր
Ըստ վերոնշյալ ծրագրի՝ Classroom-ն ունի երկու հատկություն՝ name և numOfStudents: Դպրոցը Դասարանի առարկաների հավաքածու է: Հիմնական մեթոդում ստեղծվում են երկու Classroom օբյեկտներ։ Դրանք ավելացվել են «դասարաններին»: Այս «դասասենյակները» փոխանցվում են դպրոցի օբյեկտին։Վերջապես, դասարանի անվանումը և ուսանողների թիվը տպագրվում են հավաքածուի մեջ կրկնելով: Եթե դպրոցական օբյեկտը ոչնչացվի, Classroom օբյեկտները նույնպես կկործանվեն: Սա կոմպոզիցիայի օրինակ է։ Այն նաև պարունակում է «has-a» հարաբերությունը և նաև ենթադրում է սեփականություն:
Ինչպիսի՞ն է կապը ագրեգացման և կազմի միջև Java-ում:
Ագրեգացիան և Կազմը ասոցիացիայի երկու տեսակ են, իսկ Կազմը ագրեգացիայի մասնագիտացված տեսակ է: Կազմը ագրեգացիայի ենթաբազմություն է։
Ո՞րն է տարբերությունը Java-ում ագրեգացման և կազմի միջև:
Aggregation vs Composition Java-ում |
|
Ագրեգացիան երկու օբյեկտների միջև կապ է, որը նկարագրում է «ունի» հարաբերությունը: | Կոմպոզիցիան ագրեգացիայի ավելի կոնկրետ տեսակ է, որը ենթադրում է սեփականություն: |
Օգտագործում | |
Ագրեգացիան օգտագործվում է, երբ մի օբյեկտ օգտագործում է մեկ այլ օբյեկտ: | Կոմպոզիցիան օգտագործվում է, երբ մեկ օբյեկտի սեփականատեր է մեկ այլ օբյեկտ: |
Ազդեցություն օբյեկտների վրա | |
Ագրեգացիայի մեջ սեփականատեր օբյեկտի ոչնչացումը չի ազդի պարունակող օբյեկտի վրա: | Կոմպոզիցիայի մեջ սեփականատեր օբյեկտի ոչնչացումը կազդի պարունակող օբյեկտի վրա: |
Ամփոփում – Ագրեգացում ընդդեմ կոմպոզիցիայի Java-ում
Ագրեգացիան և Կազմը երկու հասկացություններ են OOP-ում: «Ունի-ա» հարաբերությունը նկարագրում է, որ մի օբյեկտ կարող է օգտագործել մեկ այլ օբյեկտ: Ագրեգացիան երկու օբյեկտների միջև ասոցիացիա է, որը նկարագրում է «ունի-ա» հարաբերությունը: Կազմը ագրեգացիայի ավելի կոնկրետ տեսակ է, որը ենթադրում է սեփականություն:Java-ում ագրեգացիայի և կոմպոզիցիայի միջև տարբերությունն այն է, որ եթե պարունակվող օբյեկտը կարող է գոյություն ունենալ առանց սեփականության օբյեկտի գոյության, դա ագրեգացիա է, իսկ եթե պարունակվող օբյեկտը չի կարող գոյություն ունենալ առանց սեփական օբյեկտի գոյության, դա կոմպոզիցիա է: