Zawsze wiedziałem, że Singletony są "złe", ale dopiero teraz, gdy zrobiłem przejście na Javę z C++, postanowiłem znaleźć sposób na ich obejście. Z odrobiny lektury odkryłem, że albo Fabryki, albo Inwencja Dependencji mogą wykonać tę pracę, ale chciałbym potwierdzić to.Używanie Injection Dependency jako alternatywy dla Singletonów
Jako przykład, miałem zamiar napisać singleton AnimationCache, który będzie przechowywać Map<String, Animation>
. Różne klasy powinny mieć dostęp do tej klasy (w zasadzie) w dowolnym miejscu, aby mogły łatwo i wydajnie ładować animacje. Bardzo krótki przykład tego, jak mógłby wyglądać równoważny kod przy użyciu DI, byłby świetny.
Czy Guice stanowi dobre środowisko dla DI z aplikacjami innymi niż internetowe? Użyłem Springa do tworzenia stron internetowych, ale nie jestem pewny, czy zadziałałoby w przypadku gier.
Spring DI to nie tylko aplikacje internetowe. – gtiwari333
Aktualizacja: Możesz również rozważyć [CDI 2.0 - Contexts & Dependency Injection for Java] (http://cdi-spec.org). Standaryzowane w [JSR 365] (https://jcp.org/en/jsr/detail?id=365) od 2017-04. Zaprojektowany dla * obu * Java SE i Java EE. –
To pytanie i odpowiedzi mogą być istotne dla przyszłych czytelników: https://stackoverflow.com/questions/130794/what-is-dependency-injection?rq=1 – Cypher