Általános szoftver ismeretek
  A polimorfizmusról általában

Mikor használjunk ellenőrizetlen polimorfizmust?



Az ellenőrizetlen polimorfizmus kifejezés azt jelenti, hogy ha megpróbáljuk felhívjni egy objektum olyan metódusát, mellyel az nem rendelkezik akkor a hiba csak a program futása közben derül ki. A következőkben sorravesszük, hogy mikor érdemes egyértelműen ezt a fajtát választani.

1. eset: Nem létezik ellenőrzés

Az első – triviális – eset az, amikor nincs más megoldás, mert a programnyelv nem kínál típusellenőrzési lehetőséget. Ilyenek az interpretált nyelvek, pl. a
JavaScript vagy a Python. Ilyenkor természetesen nincs választási lehetőségünk, és ugyancsak természetesen: nagyon alaposan kell tesztelnünk, mert csak így tudjuk elkerülni a katasztrofális futási hibákat.

És szintén természetesen ilyenkor jövünk rá, hogy a fordítóprogram bosszantó hibajelzései mennyire tudnak hiányozni... Mint szülői korholás a gyereknek. Hiába, na, sokmindent a hiánya tesz igazán értékessé.

Mit tegyünk, ilyen az emberi természet.

2. eset: A fejlesztés első fázisában, a fejlesztés gyorsítása érdekében

Ha lehetőségünk van választani ellenőrzött és ellenőrizetlen polimorfizmus között (mint pl. a Visual Basic esetén), akkor célszerű a fejlesztés elején az utóbbival dolgozni. Ilyenkor még az osztályok, függvények, paraméterek sokat változnak; nagyon előnyös, ha gyorsan tudunk kísérletezni.

Amikor ellenőrzött polimorfizmust használunk, gyakran kell meglévő osztályokat is módosítani, például úgy, hogy implementáljanak egy újonnan kitalált interfészt, amit lehet, hogy 5 perc múlva még kétszer megváltoztatunk. Ezen idegesítő procedúra helyett sokkal hatékonyabban tudunk az ellenőrizetlen polimorfizmus segítségével haladni.

Viszont: amikor már stabilizálódott az osztály-struktúra és a felületeik, nagyon érdemes áttérni az ellenőrzött változatra. Ezt a lépést sokszor megspórolják egyszerű
lustaságból a programozók és csak később látják kárát.

Lásd a fentebbi megjegyzést az emberi természetről.


A polimorfizmusról általában
  Általános szoftver ismeretek