Quindi, ora mi occupo di questa base di codice relativamente nuova che usa e, a volte, sembra abusa dei tratti. Dal momento che sono stato esposto all'uso dei tratti in modo piuttosto limitato, mi chiedevo se il modo in cui li stanno usando ha senso. Credo che preferiscano usare i tratti quando una buona vecchia ereditā funzionerebbe altrettanto bene.
Ecco un esempio di ciò di cui sto parlando:
trait CrudTrait
{
use FindTrait;
use ExistsTrait;
use UpdateTrait;
}
Quindi, il tratto è usato più o meno come segue:
class <EntityName>ServiceAbstract extends ServiceAbstract
{
use CrudTrait;
}
Non riesco a pensare a una ragione per cui qualcosa del genere sia necessariamente migliore rispetto a semplici metodi di classe. Alla fine della giornata, questi tratti particolari sono progettati in modo tale da non poter essere riutilizzati orizzontalmente.
C'è qualche ragione per cui questo potrebbe migliore del semplice collegamento dei metodi alla classe genitrice della gerarchia ?. Sto iniziando a credere che l'abuso di tratti potrebbe essere un odore di codice qui.