Ho sempre conosciuto Singletons come "cattivo", ma solo ora che ho fatto il passaggio a Java da C++ ho deciso di trovare un modo per aggirarli. Da un po 'di lettura, ho scoperto che sia le Fabbriche che l'Iniezione delle Dipendenze potrebbero fare il lavoro, ma vorrei una conferma su questo.Uso dell'iniezione delle dipendenze in alternativa a Singletons
Come esempio, stavo per scrivere un singleton AnimationCache che memorizzerebbe uno Map<String, Animation>
. Diverse classi dovrebbero essere in grado di accedere a questa classe (fondamentalmente) ovunque in modo che possano caricare animazioni in modo facile ed efficiente. Un esempio molto breve di come sarebbe il codice equivalente con DI sarebbe fantastico.
Inoltre, Guice è un buon framework per DI con app non web? Ho usato Spring per lo sviluppo web, ma non sono così sicuro che funzionerebbe per i giochi.
Spring DI non è solo per applicazioni web. Aggiornamento – gtiwari333
: Si potrebbe anche prendere in considerazione [CDI 2.0 - Contexts & Dependency Injection per Java] (http://cdi-spec.org). Standardizzato in [JSR 365] (https://jcp.org/en/jsr/detail?id=365) a partire dal 2017-04. Progettato per * sia * Java SE che Java EE. –
Questa domanda e le sue risposte potrebbero essere pertinenti per i futuri lettori: https://stackoverflow.com/questions/130794/what-is-dependency-injection?rq=1 – Cypher