Skip to main content

Ano ang dynamic na nagbubuklod?

Sa science sa computer, ang pagbubuklod ng pangalan ay ang samahan ng isang identifier, tulad ng isang function o variable na pangalan, sa isang seksyon ng code o data.Sa pinakakaraniwang senaryo, static na nagbubuklod, ang pagmamapa na ito ay kilala sa oras ng pag -compile.Sa pabago -bagong pagbubuklod, ang bagay na naka -mapa sa pamamagitan ng isang function ay hindi kilala sa pag -compile ng oras at maaaring matukoy lamang sa oras ng pagtakbo ng programa.Para sa kadahilanang ito, ang dynamic na pagbubuklod ay tinatawag ding huli na nagbubuklod.Bagaman ang mga dinamikong nagbubuklod ay nag-aalok ng kakayahang umangkop na hindi magagamit na may static na nagbubuklod, nangangailangan din ito ng mas maraming mga gastos sa pagganap kaysa sa static na nagbubuklod.

Ang dinamikong pagbubuklod ay malapit na nauugnay sa polymorphism, na bahagi ng programming na nakatuon sa object.Pinapayagan ng polymorphism ang parehong pangalan ng pamamaraan na ipatupad sa iba't ibang paraan.Kung ang code ay hindi nakasulat sa paraang hindi matukoy ang tumpak na pamamaraan sa pag -compile ng oras, dapat gamitin ang dynamic na pagbubuklod.Ang isang bilog na subclass ng hugis, gayunpaman, ay magpapatupad ng getarea nang magkakaiba mula sa paraan ng isang parisukat na subclass.Samakatuwid, kung ang isang bagong bagay ay nilikha ng uri ng uri, at kung ang code ay tumatawag sa pamamaraan na getArea sa hugis na iyon, ang tagatala ay walang paraan upang malaman kung ang hugis ay magtatapos sa pagiging isang bilog o isang parisukat, at samakatuwid ay hindi ito malalamanAling paraan ng getarea ang tumawag.Ito ay isang halimbawa ng pabago -bagong pagbubuklod, dahil ang tamang pamamaraan ng getarea ay mai -map lamang sa oras ng pagtakbo, pagkatapos malaman ng programa kung anong uri ng hugis ang bagay.gagamitin.Sa halimbawa ng hugis, ang code ay maaaring isulat upang maiwasan ang mga dynamic na pagbubuklod sa pamamagitan ng malinaw na paggamit ng lohika na ito: kung ang hugis ay isang bilog, pagkatapos ay tawagan ang pamamaraan ng mga bilog na getarea;kung hindi, kung ang hugis ay isang parisukat, tawagan ang tiyak na pamamaraan ng getArea para sa mga parisukat.Ang pakinabang ng dynamic na pagbubuklod ay ang code ay mas malinis at mas maaasahan kaysa sa kahalili.Sa static na nagbubuklod na halimbawa, mayroong pagdoble ng code, at dapat na mai -update ang code anumang oras na idinagdag ang isang bagong uri ng hugis.

Ang pagbagsak ng pabago -bagong pagbubuklod ay pagganap at kaligtasan.Sa static na nagbubuklod, alam ng tagatala kung anong code ang tatawagin at maaaring mai -optimize ang code upang tumakbo nang mas mahusay.Ang kaligtasan ng uri ay maaaring maging isang isyu dahil, sa ilang mga pagpapatupad ng pabago -bagong pagbubuklod, ang isang pamamaraan ay maaaring tawagan sa isang bagay na hindi sumusuporta sa pamamaraan.Halimbawa, ang pamamaraan ng getArea ay maaaring tawagan sa isang bagay na hindi isang hugis at samakatuwid ay walang pamamaraan ng getArea, na maaaring magresulta sa isang error sa run-time.Ang static na nagbubuklod ay maiiwasan ang sitwasyong ito sa pamamagitan ng pagtaas ng isang compile error.