Mikä on oletusrakentaja?

Oletuskonstruktori on erikoistunut menetelmä, joka luo ja alustaa objektin olio-ohjelmoinnissa. Konstruktorityyppejä on monenlaisia, mutta oletusrakentajan on täytettävä toinen kahdesta ehdosta objektin luomisen ja alustamisen lisäksi. Siinä ei saa olla parametreja, jolloin sitä voitaisiin kutsua myös nollakonstruktoriksi, tai sen on määritettävä oletusarvot kaikille parametreille, jotka se voi asettaa. Jotkut tietokonekielet määrittävät implisiittisesti oletusarvoisen nullary -konstruktorin, jos ohjelmoija ei määritä konstruktoria ollenkaan. Kun minkä tahansa tyyppinen konstruktori on kirjoitettu, oletusnollakonstruktoria ei enää määritetä, ja se on tarvittaessa kirjoitettava nimenomaisesti.

Tietokonekielissä, jotka sallivat olio-perinnön, alaluokkien oletuskonstruktorit on liitettävä tarkasti superluokkien konstruktoriin. Alaluokan rakentajien on aina kutsuttava superluokan konstruktorit ennen kuin he tekevät mitään alaluokalle ominaista. Joillakin kielillä, kuten Java®, alaluokan konstruktori epäsuorasti kutsuu superluokan oletusarvoiseksi nullary -konstruktoriksi. Jos ylemmän luokan oletusnollakonstruktoria ei ole olemassa, alaluokkaobjektia ei voida rakentaa oikein. Tässä tapauksessa alaluokilla voi silti olla kummankin tyyppinen oletusrakentaja, mutta käytettävissä oleva superluokan konstruktori on kutsuttava oikein, ehkä välittämällä sille alaluokan ainutlaatuiset oletusarvot.

Oletusnollakonstruktorin implisiittisen generoinnin etuna on se, että ohjelmoijan on määritettävä ja dokumentoitava menetelmiä, mutta sen haittana on myös se, että se mahdollisesti vaikeuttaa koodin ylläpitoa ja ymmärtämistä. Jotkut ohjelmoijat pitävät oletuskonstruktorin laiminlyöntiä huonona käytäntönä, kun taas toiset eivät. Mikään ei estä yksittäistä ohjelmoijaa noudattamasta jompaakumpaa näistä ohjelmointimenetelmistä, joten oletusarvoisen nolla -konstruktorin sisällyttäminen koodiin on suurelta osin tyylillinen valinta ohjelmoijalta. Jos konstruktori on mukana, useimmat ajattelukoulut sanovat, että sitä tulee kommentoida ja dokumentoida aivan kuten mikä tahansa muu konstruktori tai menetelmä.

Kaikilla oletusrakentajilla voi olla käyttöoikeuden muokkaajat, jotka tekevät siitä julkisen, suojatun tai yksityisen. Tämä antaa rakentajalle erityisiä kykyjä sen luokan perusteella, jossa se on määritelty. Julkista oletuskonstruktoria voidaan käyttää uuden objektin luomiseen toisesta luokasta, kun taas suojattua konstruktoria voidaan kutsua vain omasta luokastaan ​​ja kaikista alaluokista. Suojatut oletusrakentajat näkyvät usein perintöhierarkiassa. Yksityisiä rakentajia käytetään yleensä vain itsenäisissä luokissa, joissa jonkin tyyppinen tehdasmenetelmä on käytettävissä kutsumaan sitä ohjelmoijan sijaan.