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?