Հիմնական տարբերություն – Վաղ ընդդեմ ուշ կապում
Վաղ կապում և ուշ կապում երկու հասկացություններ են՝ կապված պոլիմորֆիզմի հետ: Վաղ կապը տեղի է ունենում կոմպիլյացիայի ժամանակ, մինչդեռ ուշ կապը տեղի է ունենում գործարկման ժամանակ: Early և Late Binding-ի հիմնական տարբերությունն այն է, որ Early Binding-ն օգտագործում է դասի տեղեկատվությունը մեթոդի կանչը լուծելու համար, մինչդեռ Late Binding-ն օգտագործում է օբյեկտը մեթոդի կանչը լուծելու համար:
Ծրագրավորման լեզուները, ինչպիսին է Java-ն, աջակցում է օբյեկտ կողմնորոշված ծրագրավորմանը (OOP): Դա պարադիգմ է, որը թույլ է տալիս կառուցել ծրագիրը կամ ծրագրակազմը՝ օգտագործելով օբյեկտներ: Ծրագրաշարում կան բազմաթիվ օբյեկտներ: Այս օբյեկտները միացված են միմյանց և հաղորդագրություններ են փոխանցում մեթոդների միջոցով:Յուրաքանչյուր առարկա ունի առանձնահատկություններ և վարքագիծ: Բնութագրերը նկարագրվում են հատկություններով կամ հատկանիշներով: Վարքագիծը նկարագրված է մեթոդների կիրառմամբ: Ուսանող առարկան կարող է ունենալ այնպիսի հատկանիշներ, ինչպիսիք են անունը, տարիքը և դրանք ներկայացված են հատկություններով: Օբյեկտը Ուսանողը կարող է ունենալ այնպիսի վարքագիծ, ինչպիսիք են ուսումնասիրելն ու կարդալը, և դրանք ներկայացված են մեթոդներով: OOP-ի հիմնական սյուններից մեկը պոլիմորֆիզմն է: Այն թույլ է տալիս օբյեկտին վարվել բազմաթիվ ձևերով: Վաղ կապը և ուշ կապումը պոլիմորֆիզմի երկու հասկացություններ են: Գերբեռնման մեթոդները կապվում են վաղ կապի միջոցով: Վերացված մեթոդները կապվում են ուշ կապի միջոցով:
Ի՞նչ է վաղաժամկետ կապումը:
Early Binding-ում դասի տեղեկատվությունը օգտագործվում է մեթոդի կանչը լուծելու համար: Վաղ կապը տեղի է ունենում կոմպիլյացիայի ժամանակ: Այն նաև հայտնի է որպես ստատիկ կապ: Այս գործընթացում կապը տեղի է ունենում նախքան ծրագիրը իրականում գործարկվելը: Գերբեռնման մեթոդները կապվում են վաղ կապի միջոցով: Տե՛ս ստորև ներկայացված ծրագիրը։
Նկար 01. Հաշվարկման դաս
Նկար 02. Վաղ կապի հիմնական ծրագիր
Ըստ վերը նշված ծրագրի՝ Calculation դասը պարունակում է ավելացնել մեթոդ, որն ընդունում է երկու ամբողջ արժեք և մեկ այլ ավելացնել մեթոդ, որն ընդունում է երկու կրկնակի արժեք։ Հիմնական ծրագրում ստեղծվում է Calculation տեսակի օբյեկտ։ Ավելացման մեթոդին երկու ամբողջ թիվ փոխանցելիս այն կկանչի ավելացնելու մեթոդը, որն ընդունում է երկու ամբողջ թիվ: Ավելացման մեթոդին երկու կրկնակի արժեք փոխանցելիս այն կկանչի երկու կրկնակի արժեքներին համապատասխանող մեթոդը: Այս պարտադիր գործընթացը տեղի է ունենում կոմպիլյացիայի ժամանակ: Բոլոր պահանջվող տեղեկությունները հայտնի են մինչև գործարկման ժամանակը, ուստի այն մեծացնում է ծրագրի արդյունավետությունը և կատարման արագությունը:
Ի՞նչ է ուշ կապելը:
Late Binding-ում օբյեկտն օգտագործվում է մեթոդի կանչը լուծելու համար: Ուշ կապը տեղի է ունենում գործարկման ժամանակ: Այն նաև հայտնի է որպես դինամիկ կապ: Այս գործընթացում կապը տեղի է ունենում ծրագրի կատարման ժամանակ: Գերակայված մեթոդները կապված են ուշ կապի միջոցով: Տե՛ս ստորև ներկայացված ծրագիրը։
Նկար 03. Ձևի դաս
Նկար 04. Շրջանակի դաս
Նկար 05. Եռանկյունի դաս
Նկար 06. Ուշ կապի հիմնական ծրագիր
Ըստ վերը նշված ծրագրի Shape դասը ունի նկարչության մեթոդ։ Դասի Circle և դասի Triangle դասը ընդլայնում է Shape դասը: Հետևաբար, այս երկու դասերը կարող են ժառանգել Shape դասի ատրիբուտներն ու մեթոդները։ Shape Class-ը հիմնական դասն է: Circle և Triangle դասերը ածանցյալ դասեր են: Circle դասը և Triangle դասը նույնպես ունեն նկարչության մեթոդ՝ իրենց սեփական իրականացումներով։ Այսպիսով, Shape դասի նկարչության մեթոդը փոխարինվում է ստացված դասերի նկարչական մեթոդներով:
Հիմնական ծրագրում ստեղծվում է Shape տիպի հղման փոփոխական: Կոմպիլյացիայի ժամանակ կոմպիլյատորը կանդրադառնա միայն բազային դասի նկարման մեթոդին: Գործարկման ժամանակ կկատարվեն նկարչության տարբեր մեթոդներ:Նախ, s-ը ցույց կտա Shape տիպի օբյեկտը: Այսպիսով, գործարկվում է Shape դասի նկարչական մեթոդը: Այնուհետև s-ը ցույց կտա Circle տիպի օբյեկտը, և այն կկանչի Circle դասի նկարչական մեթոդը: Վերջապես, s-ը ցույց կտա Triangle տիպի օբյեկտը և այն կկանչի Triangle դասում նկարելու մեթոդը: Մեթոդները կոչվում են կախված օբյեկտներից: Հետևաբար, օբյեկտն օգտագործվում է Late Binding-ում զանգի մեթոդը լուծելու համար: Կապակցման համար անհրաժեշտ տեղեկատվությունը տրամադրվում է գործարկման ժամանակ, ուստի կատարման արագությունն ավելի դանդաղ է՝ համեմատած վաղ կապի հետ:
Ո՞րն է նմանությունը վաղ կապման և ուշ կապման միջև:
Եվ վաղ կապումը և ուշ կապումը կապված են պոլիմորֆիզմի հետ, որը OOP-ի սյունն է:
Ո՞րն է տարբերությունը վաղ կապման և ուշ կապի միջև:
Վաղ կապում ընդդեմ ուշ կապի |
|
Մեթոդի կանչը լուծելու համար դասի տեղեկատվության օգտագործման գործընթացը, որը տեղի է ունենում կոմպիլյացիայի ժամանակ, կոչվում է վաղ կապում: | Օբյեկտի օգտագործման գործընթացը կանչման մեթոդը լուծելու համար, որը տեղի է ունենում գործարկման ժամանակ, կոչվում է Late Binding: |
Ամրացման ժամանակը | |
Վաղ կապը տեղի է ունենում կազմման ժամանակ: | Ուշ կապը տեղի է ունենում գործարկման ժամանակ: |
Ֆունկցիոնալություն | |
Early Binding-ը օգտագործում է դասի տեղեկատվությունը մեթոդի կանչը լուծելու համար: | Late Binding-ը օգտագործում է օբյեկտը մեթոդի կանչը լուծելու համար: |
Հոմանիշներ | |
Վաղ կապումը հայտնի է նաև որպես ստատիկ կապում.. | Ուշ կապումը հայտնի է նաև որպես դինամիկ կապում: |
Դեպքի | |
Գերբեռնման մեթոդները կապված են վաղ կապի միջոցով: | Գերակայված մեթոդները կապվում են ուշ կապի միջոցով: |
Կատարման արագություն | |
Կատարման արագությունն ավելի արագ է վաղ կապում։ | Կատարման արագությունն ավելի ցածր է ուշ կապի մեջ: |
Ամփոփում – Վաղ ընդդեմ ուշ կապում
OOP-ը սովորաբար օգտագործվում է ծրագրային ապահովման մշակման համար: OOP-ի հիմնական սյունը պոլիմորֆիզմն է: Դրա հետ են կապված վաղ կապում և ուշ կապում: Վաղ կապը տեղի է ունենում կոմպիլյացիայի ժամանակ, մինչդեռ ուշ կապը տեղի է ունենում գործարկման ժամանակ: Մեթոդի գերբեռնման դեպքում կապը տեղի է ունենում վաղ կապի միջոցով: Մեթոդների գերակայության դեպքում կապը տեղի է ունենում ուշ կապի միջոցով: Early և Late Binding-ի միջև տարբերությունն այն է, որ Early Binding-ն օգտագործում է դասի տեղեկատվությունը մեթոդի կանչը լուծելու համար, մինչդեռ Late Binding-ն օգտագործում է օբյեկտը մեթոդի կանչը լուծելու համար: