Հիմնական տարբերություն – ագրեգացում ընդդեմ կազմի
Օբյեկտ-կողմնորոշված ծրագրավորումը (OOP) ծրագրային ապահովման մշակման ընդհանուր պարադիգմ է: Օբյեկտը դասի օրինակ է։ Հնարավոր չէ միանգամից օբյեկտներ ստեղծել։ Օբյեկտ ստեղծելու համար պետք է լինի նախագիծ կամ նկարագրություն: Այդ նախագիծը հայտնի է որպես դաս: Դասը պարունակում է հատկություններ և մեթոդներ: Օբյեկտները ստեղծվում են դասերի միջոցով: Դասը և առարկան իրական աշխարհում նման են հատակագծի և տան: Առանց պատշաճ հատակագծի հնարավոր չէ տուն կառուցել։ Նմանապես, դասը օգտագործվում է օբյեկտ ստեղծելու համար: Օբյեկտը համագործակցում է այլ օբյեկտների հետ: Հետ կապը ներկայացնում է երկու կամ ավելի օբյեկտների փոխհարաբերությունները, կոչվում է «ասոցիացիա»:Ագրեգացիան և կազմը ասոցիացիաների տեսակներ են: Նրանք նկարագրում են հարաբերությունները դասերի միջև: Այս հոդվածը քննարկում է ագրեգացիայի և կազմի տարբերությունը: Ագրեգացիայի և կոմպոզիցիայի հիմնական տարբերությունն այն է, որ ագրեգացիան երկու օբյեկտների միջև ասոցիացիա է, որը նկարագրում է «ունի» հարաբերությունը, իսկ կոմպոզիցիան ագրեգացիայի ավելի հատուկ տեսակ է, որը ենթադրում է սեփականություն:
Ի՞նչ է ագրեգացիան:
Երկու օբյեկտների միջև փոխհարաբերությունները ցուցադրվում են Միավորված մոդելավորման լեզվով (UML) գիծ գծելով: Հղումը ասոցիացիա է: UML-ն օգնում է ստանալ համակարգի տեսողական պատկերը: Այն տարբերվում է սովորական ծրագրավորման լեզուներից: Ասոցիացիան սահմանում է նաև օբյեկտների բազմակիությունը: Դրանք մեկ-մեկին են, մեկ-շատերին և շատ-շատերին: Երբ A դասի մեկ օբյեկտը կապված է B դասի մեկ օբյեկտի հետ, դա մեկ առ մեկ հարաբերություն է: Օրինակ՝ գիրք գրող հեղինակը: Այդ օրինակում մի հեղինակ գիրք է գրում:
Երբ A դասի օբյեկտը կապված է B դասի բազմաթիվ օբյեկտների հետ, դա մեկ-շատ հարաբերություն է: Օրինակ՝ բաժինը կարող է ունենալ բազմաթիվ աշխատակիցներ: Երբ A դասի օբյեկտը կապված է B դասի բազմաթիվ օբյեկտների հետ, իսկ B դասի օբյեկտները կապված են A դասի բազմաթիվ օբյեկտների հետ, դա շատ-շատերի ասոցիացիա է: Օրինակներից մեկն այն է, որ աշխատողը կարող է աշխատել մի քանի նախագծերի վրա, իսկ նախագիծը կարող է ունենալ մի քանի աշխատակից:
Ագրեգացիան տիպային ասոցիացիա է, որը հետագայում նկարագրում է օբյեկտների միջև կապը: Ագրեգացիան նկարագրում է «ունի» հարաբերությունը: Որոշ օրինակներ, որոնք նկարագրում են հարաբերությունները, հետևյալն են՝ ուսանողը «ունի» ուսանողական ID, մեքենան «ունի» շարժիչ: Հարաբերությունների հետ հնարավոր է նաև մեծ քանակություն ընդլայնել։ Որոշ օրինակներ են՝ բանկը «շատ» բանկային հաշիվներ ունի, դասարանը՝ «շատ» ուսանողներ: Դա կարելի է բացատրել ստորև բերված օրինակով։
Գծապատկեր 01. համախմբում
Համաձայն վերոնշյալ օրինակի՝ դասարանը բաղկացած է աշակերտից կամ բազմաթիվ աշակերտներից։ Բազմապատկությունը օգտագործվում է նաև օբյեկտների քանակը նշելու համար: Այն նկարագրում է, որ մեկ դասարանում մի քանի ուսանող կա: Ադամանդի խորհրդանիշը ներկայացնում է ագրեգացիան UML-ում: Ուսանողների օբյեկտները չեն հիմնվում դասի օբյեկտի վրա: Եթե դասի օբյեկտը ոչնչացվում է, այն չի ազդի ուսանողի օբյեկտների վրա: Այդ օբյեկտները դեռ գոյություն կունենան։
Ի՞նչ է կոմպոզիցիան?
Կազմը ագրեգացման ավելի կոնկրետ ձև է: Այն նկարագրում է սեփականության իրավունքը: Դա կարելի է բացատրել ստորև բերված օրինակով։
Նկար 02. Կազմը
Ըստ վերոհիշյալի, գրքի օբյեկտը բաղկացած է էջի օբյեկտից կամ էջերից։ Բազմապատկությունը օգտագործվում է նաև օբյեկտների քանակը նշելու համար: Այն նկարագրում է, որ մեկ դասարանում մի քանի ուսանող կա: Ընդգծված ադամանդի խորհրդանիշը ներկայացնում է UML-ի կազմը: Քանի որ գիրքն ունի էջ կամ շատ էջեր, այն ագրեգացված է, բայց ավելի հստակեցված։ Եթե գրքի օբյեկտը ոչնչացվում է, ապա էջի օբյեկտները նույնպես ոչնչացվում են: Էջի օբյեկտները չեն կարող գոյություն ունենալ առանց գրքի օբյեկտի: Հետևաբար, կազմը ագրեգացիայի ավելի կոնկրետ ձև է, որը ենթադրում է սեփականություն:
Որո՞նք են նմանությունները համախմբման և կազմի միջև:
- Երկուսն էլ օգտագործվում են օբյեկտ կողմնորոշված ծրագրավորման մեջ:
- Երկուսն էլ օգտագործվում են Unified Modeling Language (UML)՝ համակարգի տեսողական պատկերացում ստանալու համար:
Ո՞րն է տարբերությունը ագրեգացման և կազմի միջև:
Ագրեգացիա ընդդեմ կոմպոզիցիայի |
|
Ագրեգացիան երկու օբյեկտների միջև կապ է, որը նկարագրում է «ունի» հարաբերությունը: | Կոմպոզիցիան ագրեգացիայի առավել կոնկրետ տեսակն է, որը ենթադրում է սեփականություն: |
UML խորհրդանիշ | |
Ագրեգացիան նշվում է ադամանդով: | Բաղադրությունը նշվում է ընդգծված ադամանդով: |
Ֆունկցիոնալություն | |
Ագրեգացիայի մեջ, եթե սեփականատերը ոչնչացվի, այն չի ազդի պարունակող օբյեկտի վրա: | Կազմության մեջ, եթե սեփականատերը ոչնչացվի, այն կազդի պարունակող օբյեկտի վրա: |
Ամփոփում – Համախմբում ընդդեմ կազմի
Օբյեկտ-կողմնորոշված ծրագրավորումը ծրագրային ապահովման մշակման հիմնական պարադիգմ է: OOP-ում համակարգը մոդելավորվում է օբյեկտների միջոցով: Այս օբյեկտները առանձին գոյություն չունեն։ Օբյեկտները համագործակցում են այլ օբյեկտների հետ: Օբյեկտների միջև փոխհարաբերությունները հայտնի են որպես ասոցիացիա: Ագրեգացիան և կազմը ասոցիացիայի տեսակներ են: Համախմբման և կոմպոզիցիայի միջև տարբերությունն այն է, որ ագրեգացիան երկու օբյեկտների միջև ասոցիացիա է, որը նկարագրում է «ունի» հարաբերությունը, իսկ կազմը ագրեգացիայի ավելի կոնկրետ տեսակն է, որը ենթադրում է սեփականություն: Համախմբումը և կազմը երկուսն էլ օգնում են հասկանալ համակարգի վարքագիծը:
Ներբեռնեք Aggregation vs Composition-ի PDF տարբերակը
Դուք կարող եք ներբեռնել այս հոդվածի PDF տարբերակը և օգտագործել այն անցանց նպատակներով՝ ըստ մեջբերումների: Խնդրում ենք ներբեռնել PDF տարբերակը այստեղ Տարբերությունը միավորման և կազմի միջև