Galvenā atšķirība - agrīna vai vēlīna iesiešana
Agrīna saistīšana un vēlīna saistīšana ir divi ar polimorfismu saistīti jēdzieni. Agrīnā saistīšana notiek kompilēšanas laikā, savukārt vēlīnā saistīšana notiek izpildlaikā. Galvenā atšķirība starp agrīno un vēlo saistīšanu ir tāda, ka agrīnā saistīšana izmanto klases informāciju, lai atrisinātu metodes izsaukšanu, savukārt vēlīnā saistīšana izmanto objektu, lai atrisinātu metodes izsaukšanu.
Programmēšanas valodas, piemēram, Java, atbalsta objektorientēto programmēšanu (OOP). Tā ir paradigma, kas ļauj konstruēt programmu vai programmatūru, izmantojot objektus. Programmatūrā ir vairāki objekti. Šie objekti ir savienoti viens ar otru un nodod ziņojumus, izmantojot metodes. Katram objektam ir īpašības un uzvedība. Raksturlielumus raksturo īpašības vai atribūti. Uzvedību apraksta, izmantojot metodes. Objektam Students var būt tādas īpašības kā vārds, vecums, un tos attēlo īpašības. Objektam Students var būt tādas uzvedības kā mācīšanās un lasīšana, un tās attēlo metodes. Viens no galvenajiem OOP balstiem ir polimorfisms. Tas ļauj objektam izturēties vairākos veidos. Agrīna saistīšana un vēlīna saistīšana ir divi polimorfisma jēdzieni. Pārslodzes metodes tiek savienotas, izmantojot agrīnu iesiešanu. Ignorētās metodes tiek piesaistītas, izmantojot vēlo saistīšanu.
Kas ir agrīnā iesiešana?
Early Binding ietvaros klases informācija tiek izmantota, lai atrisinātu metodes izsaukšanu. Agrīna saistīšana notiek kompilēšanas laikā. To sauc arī par statisko iesiešanu. Šajā procesā saistīšana notiek, pirms programma faktiski tiek palaista. Pārslodzes metodes tiek savienotas, izmantojot agrīnu iesiešanu. Skatiet tālāk norādīto programmu.
Attēls 01: Aprēķinu klase
Attēls 02: Galvenā programma agrīnai iesiešanai
Saskaņā ar iepriekš minēto programmu Calculation klasē ir pievienošanas metode, kas pieņem divas veselas vērtības, un vēl viena pievienošanas metode, kas pieņem divas dubultās vērtības. Galvenajā programmā tiek izveidots aprēķinu tipa objekts. Nododot divus veselus skaitļus pievienošanas metodei, tā izsauks pievienošanas metodi, kas pieņem divus veselus skaitļus. Nododot pievienošanas metodei divas dubultās vērtības, tā izsauks metodi, kas atbilst divām dubultvērtībām. Šis saistīšanas process notiek kompilēšanas laikā. Visa nepieciešamā informācija ir zināma pirms izpildes laika, tāpēc tas palielina programmas efektivitāti un izpildes ātrumu.
Kas ir vēlā iesiešana?
Vēlajā saistīšanā objekts tiek izmantots, lai atrisinātu metodes izsaukšanu. Vēlīna saistīšana notiek izpildlaikā. To sauc arī par dinamisko iesiešanu. Šajā procesā saistīšana notiek programmas izpildes laikā. Ignorētās metodes tiek piesaistītas, izmantojot vēlo saistīšanu. Skatiet tālāk norādīto programmu.
03. attēls: formas klase
4. attēls: Apļa klase
05. attēls: Trijstūra klase
Attēls 06: Galvenā programma vēlīnai iesiešanai
Saskaņā ar iepriekš minēto programmu, klasei Shape ir zīmēšanas metode. Klase Aplis un klase Trijstūra klase paplašina Shape klasi. Tāpēc šīs divas klases var mantot Shape klases atribūtus un metodes. Shape Class ir bāzes klase. Apļa un trīsstūra klases ir atvasinātas klases. Klasei Circle un klasē Triangle ir arī zīmēšanas metode ar savām implementācijām. Tātad zīmēšanas metodi Shape klasē ignorē atvasināto klašu zīmēšanas metodes.
Galvenajā programmā tiek izveidots Shape tipa atsauces mainīgais s. Kompilēšanas laikā kompilators atsauksies tikai uz bāzes klases zīmēšanas metodi. Izpildes laikā tiks izpildītas dažādas vilkšanas metodes. Pirmkārt, s norādīs uz Shape tipa objektu. Tātad tiek izsaukta Shape klases zīmēšanas metode. Tad s norādīs uz Circle tipa objektu, un tas izsauks Circle klases zīmēšanas metodi. Visbeidzot, s norādīs uz objektu, kura tips ir Triangle, un tas izsauks zīmēšanas metodi Triangle klasē. Metodes tiek izsauktas atkarībā no objektiem. Tāpēc objekts tiek izmantots, lai atrisinātu metodes izsaukšanu vēlīnā saistīšanā. Iesiešanai nepieciešamā informācija tiek sniegta izpildes laikā, tāpēc izpildes ātrums ir lēnāks, salīdzinot ar agrīnu saistīšanu.
Kāda ir līdzība starp agrīno iesiešanu un vēlo iesiešanu?
Gan agrīnā saistīšana, gan vēlīnā saistīšana ir saistītas ar polimorfismu, kas ir OOP balsts
Kāda ir atšķirība starp agrīno iesiešanu un vēlo iesiešanu?
Agrīna iesiešana pret vēlu iesiešanu |
|
Klases informācijas izmantošanas procesu, lai atrisinātu metožu izsaukšanu, kas notiek kompilēšanas laikā, sauc par agrīno saistīšanu. | Objekta izmantošanas procesu, lai atrisinātu metodes izsaukšanu, kas notiek izpildes laikā, sauc par vēlo saistīšanu. |
Iesiešanas laiks | |
Agrīna saistīšana notiek kompilēšanas laikā. | Vēlā saistīšana notiek izpildlaikā. |
Funkcionalitāte | |
Early Binding izmanto klases informāciju, lai atrisinātu metodes izsaukšanu. | Late Binding izmanto objektu, lai atrisinātu metodes izsaukšanu. |
Sinonīmi | |
Agrīna iesiešana ir pazīstama arī kā statiskā iesiešana.. | Vēlā iesiešana ir pazīstama arī kā dinamiskā iesiešana. |
Atgadījums | |
Pārslodzes metodes tiek savienotas, izmantojot agrīnu iesiešanu. | Iesaistītās metodes tiek savienotas, izmantojot vēlo iesiešanu. |
Izpildes ātrums | |
Izpildes ātrums ir ātrāks agrīnā saistīšanā. | Izpildes ātrums ir mazāks vēlīnā iesiešanā. |
Kopsavilkums - agrīna vai vēlā iesiešana
OOP parasti izmanto programmatūras izstrādei. Viens no galvenajiem OOP balstiem ir polimorfisms. Agrīna iesiešana un vēlā iesiešana ir saistītas ar to. Agrīna saistīšana notiek kompilēšanas laikā, savukārt vēlā saistīšana notiek izpildlaikā. Metodes pārslodzes gadījumā savienošana notiek, izmantojot agrīno saistīšanu. Metodes ignorēšanas gadījumā savienošana notiek, izmantojot vēlo saistīšanu. Atšķirība starp agrīno un vēlo saistīšanu ir tāda, ka agrīnā saistīšana izmanto klases informāciju, lai atrisinātu metodes izsaukšanu, savukārt vēlīnā saistīšana izmanto objektu, lai atrisinātu metodes izsaukšanu.