Odpověď na názor

Odpovídáte na názor k článku V PHP pribudne operátor pipe. Názory mohou přidávat pouze registrovaní uživatelé. Nově přidané názory se na webu objeví až po schválení redakcí.

  • 28. 5. 2025 17:54

    BoneFlute

    Traity jsou reusable kódu udělané správně.

    Třeba takové C++ na reusable používá dědičnost, protože nic jiného nemá. Což ale zpětně vyvolává dojem, že je to správně, což, jak víme, není.

    C# má alespoň rozhraní. Ale nemá traity. Takže když potřebuješ reusable kódu co uděláš?

    1/ injektáš - jenže ty ne vždy chceš umožnit měnit implementaci. Navíc to vytváří příliš velkou volnost, což ne vždy je žádoucí.

    2/ vytvoříš inplace instanci - jenže to znamená, že ta třída musí být veřejná (v C# nemusí, v PHP musí)

    3/ dědičnost - výhoda je ve vhodném těsném vztahu. Nevýhoda, že skáčeš jak blbec skrz pět úrovní dědičnost. Hlavně to ale vytváří nežádoucí vztah "is".

    V C# je, asi, nejvhodnější vytvoření privátní třídy, čímž simuluješ reusable. Problém vidím v tom, že děláš něco jiného, než co potřebuješ. V PHP napíšu traitu, a tam narvu všechno co potřebuju sdílet napříč třídami. Jasně a srozumitelně tím deklaruju o co mi jde. Vulgárně řečeno děláš dědičnost bez dědičnostil = to chceme.

    Pak je samozřejmě už jen na mé soudnosti, jak moc to rozfrcám. Zneužít se dá všechno.

    28. 5. 2025, 17:56 editováno autorem komentáře