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í.
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