Johdatus rakentajaan ja tuhoajaan

Rakentaja ja tuhoaja. Constructor on erikoistoiminto, jolla on sama nimi kuin sen luokan nimellä, johon se on määritelty. Sitä kutsutaan automaattisesti aina, kun uusi ilmentymä luodaan. Sitä pidetään erityyppisenä funktiona, koska sitä ei vaadita kutsumaan nimenomaisesti objektia käyttämällä. Hävittäjä voidaan määritellä erityyppiseksi menetelmäksi, joka voidaan peruuttaa ilmentymän poistamisen yhteydessä. Destructorin tarkoituksena on vapauttaa muisti, jonka se sitoo siihen, kun luokan ilmentymä on luotu. Destructor-konsepti on huolissaan muistin hallinnasta, jotta resursseja voitaisiin hyödyntää tehokkaasti. C ++ -kaltaisilla kielillä on olemassa Destructor-käsite, ja siihen voidaan vedota automaattisesti, kun ilmentymä on poistettu, kun taas Java-kaltaisella kielellä Destructor-käsitettä ei ole. Se antoi ohjelman kirjoittaa hyvällä tavalla, jotta se voitaisiin kääntää oikein ja että se voi olla kevyt muistin kulutuksen kannalta.

Head to Head -vertailu rakentajan ja tuhoajan välillä

Alla on 4 suosituinta vertailua rakentajan ja tuhoajan välillä

Keskeiset erot rakentajan ja tuhoajan välillä

Rakentajien ja rakentajien välillä on useita eroja. Alla on joitain yleisiä ja tärkeitä eroja.

  • Rakentajaan vedotaan, kun kyseisen luokan ilmentymä luodaan. Sitä ei tarvitse kutsua nimenomaisesti. Hävittäjän tapauksessa se vetoaa, kun minkä tahansa luokan esiintymät poistetaan. Se on myös jotain, joka tulee rooliin automaattisesti heti, kun objekti poistetaan.
  • Rakentaja johtaa miehittämään järjestelmän muistin sijoittamalla ne resursseihin, ja se on juuri päinvastainen hävittäjän tapauksessa. Suorittimessa resursseille määritetty muisti vapautetaan, jotta toinen resurssi voisi käyttää sitä.
  • Rakentajan ilmoittamiseksi ei tarvita erityismerkkiä. Voidaan vain luoda menetelmä, jonka nimi on samanlainen kuin luokan nimi. Hävittäjän tapauksessa tilden merkkiä on käytettävä tuhoajan lisäämiseen ohjelmaan.
  • Rakentajaa voidaan käyttää korkean ja keskitason ohjelmointikielellä. Hävittäjän tapauksessa sitä ei voida käyttää korkean tason kielellä. C ++ pystyy käyttämään tuhoajaa, mutta samaa ei ole saatavana Javassa. Se johtuu siitä, että korkean tason ohjelmointikielellä oli oma mekanismi muistin hallintaan.
  • Konstruktoria voidaan käyttää hyvin usein ohjelmassa. Se on erittäin helppokäyttöinen ja vähentää ohjelman monimutkaisuutta. Toisaalta hävittäjää suositellaan käytettäväksi, kun on tarpeen vähentää muistin kulutusta ohjelmaresurssien avulla.

Head to Head -vertailut rakentajan ja tuhoajan välillä

Rakentajadestructor
Pyydetty ilmentymän luomisen aikana
Kun minkä tahansa luokan ilmentymä tai objekti luodaan, se johtaa automaattisen puhelun kutsumiseen rakentajaan, joka antaa kaikki toteutusmenetelmät konstruktorimenetelmän mukaisesti.
Kutsu esiintymän poistamisen yhteydessä
Kun ilmentymä tai objekti poistetaan, hävittäjä käynnistetään automaattisesti ja sen jälkeen hävittäjäluokan lauseet suoritetaan peräkkäin.
Käyttää muistia
Kun luokkaa kutsutaan, se varaa muistin kaikille resursseille, joita luokka aikoo käyttää edelleen. Se johtaa järjestelmän muistin kuluttamiseen tietojen säilyttämiseksi pysyvästi tai väliaikaisesti.
Vapauttaa muistin
Kun hävittäjää kutsutaan, se vapauttaa kaikki muistit siitä, että resurssit on käytetty. Vapautettu muisti voidaan edelleen löytää muihin resursseihin, joita käytetään ohjelmassa.
Tukea keskitason ja korkean tason kielillä
Konstruktoriksi kutsutaan automaattisesti aina, kun luokan esiintymä on luotu ja tätä ominaisuutta tukevat molemmat kielet: keskitason ja korkean tason ohjelmointikielet.
Tukea vain keskitason kielillä
Hävittäjän ominaisuuksia tuetaan vain keskitason kielellä, kuten C ++. Java-kaltaisen korkean tason kielen suhteen se ei salli tällaisia ​​ominaisuuksia, koska sillä on oma tapa hallita muistia.
Ei erityistä merkkiä vaadita ilmoituksen aikana
Jotta voidaan ilmoittaa rakentaja, täytyy vain kirjoittaa menetelmän nimi, jonka on oltava sama kuin luokan. Rakentajan ilmoittamiseen ei saisi tarvita erityismerkkiä.
Tildeä käytetään ilmoituksen tekemisessä
Hävittäjän ilmoittamiseksi hänen on käytettävä tildeä. Konstruktorin nimeä seuraa tilde-merkki, ja sen on päätyttävä pienillä hakasilla, kuten kaikissa toiminnoissa tapahtuu.

johtopäätös

  • Rakentaja ei ole mitään muuta kuin vain menetelmä, jolla on sama nimi kuin luokalla. Ei vie aikaa, ennen kuin saamme esiin, kun ilmentymät on luotu. Objekti voidaan tässä tapauksessa luoda samalla syntaksilla kuin mitä tahansa luokan objektin luomiseen. Objektin luomiseen mennessä se vie muistissa olevan tilan ja tuo rakentajan lausunnon toteutukseen.
  • Tuhoaja on jotain täysin vastapäätä rakentajan omaa. Siihen kutsutaan heti, kun objekti on poistettu. Itse asiassa, kun objekti poistetaan, se poistaa kaikki siihen sijoitetut resurssit, mikä johtaa kaikkien niiden varaamien muistien vapauttamiseen, jotta uudet resurssit voisivat käyttää sitä muistia. Vaikka molempien käsitteiden välillä on joitain eroja, molemmilla on tärkeä rooli ohjelmoinnissa ja etenkin kun puhumme tehokkaasta ohjelmoinnista keskitason kielellä.

Suositellut artikkelit:

Tämä on opas rakentajan ja tuhoajan eroon. Täällä olemme keskustelleet johdannosta rakentajalle ja tuhoajalle, tärkeimmistä eroista vertailutaulukon ohella. Voit myös käydä läpi muiden ehdotettujen artikkeleidemme saadaksesi lisätietoja -

  1. C ++ vs. Java
  2. C ++ -haastattelukysymykset
  3. Java-kokoelmien haastattelukysymykset
  4. Ura tietokoneohjelmoinnissa