Quando aggiungo dipendenze in Scala, tendo ad usare componenti mixin trait per quelli che sono ereditati dalla classe stessa. Ad esempio, DaoGenerator extends Generator
Tuttavia, per i componenti tratti piace FileIO , è meno diretto. Se la classe DaoGenerator lo richiede, tendo a effettuare una chiamata di giudizio. Mi sembra che possa essere un trait component , object o package object .
Se fa parte delle classi "responsabilità", lo aggiungo come componente tratto. È probabile che una classe generatrice debba accedere agli oggetti file nel progetto, quindi la aggiungo come trait component .
Ma se si tratta di un'altra classe, tendo a piacere aggiungerla come object o package object , semplicemente perché è una preoccupazione trasversale. Ma quando scegli un object su un package object ? Per la registrazione e la configurazione, utilizzo package object solo perché sembra giusto.
Qual è la tua regola generale per questi casi?