Tofauti Muhimu – Kufunga Tuli dhidi ya Kuunganisha kwa Nguvu
Lugha za kupanga kama vile Java na C zinaauni Upangaji Wenye Uelekezaji wa Kitu (OOP). Inaruhusu programu ya kujenga kwa kutumia vitu. Kuna vitu vingi katika mfumo wa programu au programu. Vitu hivi vina sifa na mbinu. Sifa huelezea sifa. Mbinu zinaelezea vitendo vinavyoweza kufanywa na kitu. Data hupitishwa kupitia vitu kwa kutumia mbinu. Thamani zinazohitajika hutumwa kupitia simu za mbinu na vigezo. Utekelezaji wa njia halisi uko katika ufafanuzi wa njia. Kuna kiunga kati ya simu ya njia na ufafanuzi wa njia. Inajulikana kama kufunga. Kuna aina mbili za vifungo. Wao ni kisheria tuli na kuunganisha kwa nguvu. Tofauti kuu kati ya kuunganisha tuli na kuunganisha kwa nguvu ni kwamba, katika ufungaji tuli, ufungaji hutatuliwa wakati wa kukusanya huku uunganishaji unaobadilika ukitatuliwa wakati wa utekelezaji, ambao ni wakati halisi wa utekelezaji. Makala haya yanajadili tofauti kati ya mifumo hii miwili ya kuunganisha.
Ni Nini Kinachofunga Tuli?
Kufunga ni kiungo kati ya simu ya mbinu na ufafanuzi wa mbinu.
Kielelezo 01: Kuunganisha Tuli na Kuunganisha kwa Nguvu
Rejelea programu iliyo hapa chini iliyoandikwa kwa Java.
darasa la umma A{
mbinu ya utupu1(){
System.out.println(“Njia1”);
}
mbinu ya utupu ya umma2(){
System.out.println(“Method2”);
}
utupu mkuu wa tuli wa umma(String args){
A obj=A();
obj.njia1();
obj.njia2();
}
}
Kulingana na programu iliyo hapo juu, kitu cha aina A kinaundwa. Kisha method1 na method2 zinaitwa. Kutambua ni njia gani inapaswa kuhitaji kutekelezwa inajulikana kama kufunga. Taarifa obj.method1() itaita method1() na obj.method2() itaita method2(). Kiungo hiki ni cha lazima.
Katika ufungaji tuli, ufungaji hutatuliwa kwa wakati wa mkusanyo na mkusanyaji. Pia inajulikana kama kufunga mapema. Kufunga hufanyika kabla ya programu kuendeshwa. Kufunga tuli hutokea katika upakiaji wa mbinu. Rejelea programu iliyo hapa chini iliyoandikwa katika Java.
Hesabu ya utupu wa umma{
jumla ya utupu wa umma(int x, int y){
System.out.println(“Jumla ni “, x+y);
}
jumla ya utupu wa umma(double x, double y){
System.out.println(“Jumla ni “, x+y);
}
utupu mkuu wa tuli wa umma(String args){
Hesabu=Hesabu mpya();
hesabu.jumla(2, 3);
cal.sum(5.1, 6.4);
}
}
Kulingana na mpango ulio hapo juu, wakati wa kupitisha nambari mbili kamili, njia iliyo na nambari mbili kamili itatumika. Wakati wa kupitisha maadili mawili mawili, njia inayolingana na maadili mawili itatumiwa. Utaratibu huu wa kuunganisha hutokea wakati wa mkusanyiko. Mkusanyaji anajua kuwa inapaswa kuita njia ya jumla na nambari mbili kamili za cal.sum(2, 3). Kwa cal(5.1, 6.4), itaita njia ya jumla na maadili mawili maradufu. Taarifa zote zinazohitajika zinajulikana kabla ya kukimbia, kwa hiyo huongeza ufanisi wa programu na kasi ya utekelezaji.
Kufunga kwa Nguvu ni nini?
Katika Kuunganisha kwa Nguvu mkusanyaji hakusuluhishi ufungaji kwa wakati wa mkusanyo. Kufunga hufanyika wakati wa kukimbia. Pia inajulikana kama kufungwa kwa marehemu. Kuunganisha kwa Nguvu hutokea katika kubatilisha mbinu. Rejelea programu iliyoandikwa kwa Java.
Umbo la darasa la umma(){
droo ya utupu ya umma(){
System.out.println(“Chora umbo”);
}
}
darasa la umma Mduara() huongeza Umbo{
droo ya utupu ya umma(){
System.out.println(“Chora duara”);
}
}
pembetatu ya darasa la umma() huongeza Umbo{
droo ya utupu ya umma(){
System.out.println(“Chora pembetatu”);
}
}
Mtihani wa darasa la umma{
utupu mkuu wa tuli wa umma(String args){
Shape s;
s=Umbo jipya();
s.draw();
s=Mduara mpya();
s.draw();
s=Pembetatu mpya();
s.draw();
}
}
Kulingana na mpango ulio hapo juu, umbo la darasa lina mbinu ya kuchora(). Mduara wa Darasa na Pembetatu ya darasa huongeza darasa la Umbo. Mduara wa Hatari na Pembetatu ya darasa inaweza kurithi sifa na mbinu za Umbo la darasa. Kwa hivyo, sura ya darasa ndio darasa bora au darasa la mzazi. Mduara wa Hatari na Pembetatu ya Darasa ni madaraja madogo au madaraja yanayotokana. Madarasa haya pia yana njia ya draw() na utekelezaji wao wenyewe. Kwa hivyo, mbinu ya draw() katika super class imebatilishwa.
Katika mbinu kuu, vitu tofauti vinaalikwa. Kuna tofauti ya kumbukumbu ya aina ya Umbo, ambayo ni s. Kisha, s huita njia kulingana na darasa maalum. Kwa wakati wa kukusanya, mkusanyaji atarejelea tu njia ya kuchora ya darasa bora. Wakati utekelezaji halisi unapoanza, itasababisha utekelezaji wa mbinu tofauti za kuchora. Kwanza, s itakuwa ikielekeza kwenye kitu cha aina ya Umbo. Kwa hivyo, itaomba njia ya kuchora katika darasa la Shape. Kisha s itakuwa ikielekeza kitu cha aina ya Mduara, na itaomba njia ya kuchora ya darasa la Mduara. Mwishowe, s itakuwa inarejelea kitu cha aina ya Pembetatu, na itaomba njia ya kuchora katika darasa la Pembetatu. Ingawa utofauti wa rejeleo ni wa aina ya Umbo, kufungwa hufanyika kutegemea aina ya kitu. Dhana hii inajulikana kama Kuunganisha kwa Nguvu. Taarifa hutolewa wakati wa utekelezaji, kwa hivyo kasi ya utekelezaji ni ndogo ikilinganishwa na ufungaji tuli.
Kuna Ulinganifu Gani Kati ya Kuunganisha Tuli na Kuunganisha kwa Nguvu?
Zote mbili zinahusiana na upolimishaji unaoruhusu kitu kufanya kazi kwa njia nyingi
Kuna tofauti gani kati ya Kuunganisha Tuli na Kuunganisha kwa Nguvu?
Static Binding vs Dynamic Binding |
|
Ufungaji Tuli ni aina ya ufungaji ambayo hukusanya taarifa zote zinazohitajika ili kuitisha kipengele cha kukokotoa wakati wa ujumuishaji. | Kufunga kwa Nguvu ni aina ya ufungaji ambayo hukusanya taarifa zote zinazohitajika ili kuitisha chaguo la kukokotoa wakati wa utekelezaji. |
Wakati wa Kufunga | |
Ufungaji Tuli hutokea wakati wa mkusanyiko. | Kufunga kwa nguvu hutokea wakati wa utekelezaji. |
Utendaji | |
Static Binding hutumia maelezo ya aina ya kufunga. | Kuunganisha kwa Nguvu hutumia vipengee kusuluhisha kufunga. |
Kitu Halisi | |
Ufungaji tuli hautumii kitu halisi kufunga. | Kufunga kwa nguvu, tumia kitu halisi kwa kufunga. |
Visawe | |
Kufunga tuli pia kunajulikana kama kufunga mapema. | Ufungaji unaobadilika pia unajulikana kama ufungaji wa kuchelewa. |
Utekelezaji | |
Kasi ya utekelezaji ni ya haraka katika kuunganisha tuli. | Kasi ya utekelezaji ni ya chini katika ufungaji unaobadilika. |
Mfano | |
Ufungaji tuli hutumika katika upakiaji wa mbinu kupita kiasi. | Ufungamanishaji wa nguvu hutumika katika kubatilisha mbinu. |
Muhtasari – Kuunganisha Tuli dhidi ya Kuunganisha kwa Nguvu
Kuna kiungo kati ya simu ya mbinu na ufafanuzi wa mbinu. Inajulikana kama kufunga. Kuna aina mbili za vifungo vinavyoitwa kuunganisha tuli na kuunganisha kwa nguvu. Tofauti kati ya ufungaji tuli na uunganishaji unaobadilika ni kwamba katika ufungaji tuli, ufungaji hutatuliwa kwa wakati wa ujumuishaji huku ufungaji unaobadilika ukitatuliwa wakati wa utekelezaji, ambao ndio wakati halisi wa utekelezaji. Kadiri maelezo yanayohitajika yanavyotolewa kabla ya muda wa utekelezaji, ufungaji tuli ni wa haraka katika utekelezaji ikilinganishwa na ufungaji unaobadilika.
Pakua PDF ya Static Binding vs Dynamic Binding
Unaweza kupakua toleo la PDF la makala haya na uitumie kwa madhumuni ya nje ya mtandao kulingana na dokezo la manukuu. Tafadhali pakua toleo la PDF hapa: Tofauti Kati ya Kufunga Tuli na Kuunganisha kwa Nguvu