Přidat otázku mezi oblíbenéZasílat nové odpovědi e-mailem PHP: Chyba s odkazem typu index.php?id=1..

Skús nahradiť switch..case, o ktorom sa bavíme teraz, polymorfizmom. Buď sme sa trafili do tých 5 % (nie), alebo si si tých 95 % vycucal z prsta (áno).

Hezké video ukazuje prípad, ktorý si zaslúžil refaktoring, ale príčinou nebol switch..case ako taký, ale to, že logika pre rôzne prípady bola definovaná v jednej monolitickej metóde. Code smell je len symptóm problému, to ale neznamená, že tam nejaký problém je. Javisti majú ale s enumom nejaký mentálny problém, keďže im aj celkom dlho trvalo (8 rokov?), kým prišli na to, že by mali enum vôbec do toho jazyka zapracovať.

Napr. chlapík vo videu na záver upravil factory metódu zo switch..case na HashMap so slovami, že to je more object-oriented way. Pritom do slovníka ukladal inštancie nových objektov, ktoré vytváral zbytočne a v prípade, že by niektorý z nich bol časovo náročnejší na vytvorenie, tak by sa mu to odrazilo na výkone. Pritom switch..case týmto neduhom netrpel, takže toto konkrétne by som skôr nazval more stupid way. Môžeš síce povedať, že to nie je podstatné (dalo by sa pridať lazy loading a neviem čo ešte), ale takisto aj ja môžem povedať, že celý ten refaktoring bol len stratou času (príliš malý problém, pre ktorý sa našlo "elegantné" a komplexné riešenie, Java way).

Reakce na odpověď

1 Zadajte svou přezdívku:
2 Napište svou odpověď:
3 Pokud chcete dostat ban, zadejte libovolný text:

Zpět do poradny