Ora che sono entrato in un groove di dipendenza dalle dipendenze, trovo che i metodi principali per le diverse applicazioni sembrano fondamentalmente gli stessi. Questo è simile a cose che potresti trovare nella documentazione di Guice, ma metterò un esempio qui:
public class MyApp {
public static void main(String... args) {
Injector inj = Guice.createInjector(new SomeModule(),
new DatabaseModule()
new ThirdModule());
DatabaseService ds = inj.getInstance(DatabaseService.class);
ds.start();
SomeService ss = inj.getInstance(SomeService.class);
ss.start();
// etc.
}
}
Per più applicazioni ho metodi principali che sembrano tutti uguali. Ma ora, diciamo che voglio fare una nuova app, che, per esempio, riutilizza il mio DatabaseModule
. Ho praticamente bisogno di copiare e incollare il metodo main
e apportare le modifiche appropriate ... Vedo copia-incolla come un odore di codice. Inoltre, diciamo che mi rendo conto che probabilmente dovrei mettere shutdown hooks , ora devo passare e modificare ogni metodo principale in tutte le mie applicazioni per collegare i hook di shutdown a ciascun servizio.
C'è un buon modo per creare un template per questo processo e minimizzare il boilerplate?