www.wikidata.de-de.nina.az
Google Guice ist ein Open Source Framework fur Dependency Injection mit Java Guice wurde von Google erstmals 2008 unter der Apache Lizenz veroffentlicht Als damals erstes Framework ermoglicht Guice Dependency Injection mittels Annotationen 2008 gewann es den Jolt Award fur das beste Framework 2 Google GuiceBasisdatenEntwickler Google Inc mehr Aktuelle Version 7 0 0 1 12 Mai 2023 Betriebssystem plattformunabhangigProgrammiersprache JavaKategorie Dependency Injection FrameworkLizenz Apache Lizenz Version 2 0 Apache Lizenzdeutschsprachig neingithub com google guice Inhaltsverzeichnis 1 Dependency Injection DI und Inversion of Control IoC 2 Module in Google Guice 3 Scopes 4 Siehe auch 5 Weblinks 6 EinzelnachweiseDependency Injection DI und Inversion of Control IoC BearbeitenInversion of Control ist ein Pattern in der Software Entwicklung bei dem Programme ihre Abhangigkeiten d h Programmteile oder Komponenten von denen sie selbst abhangen nicht selbst erzeugen sondern sich von aussen herein geben lassen Dieses Prinzip ist grundsatzlich ohne Dependency Injection moglich wird aber mit Dependency Injection wesentlich vereinfacht Dependency Injection sieht dabei vor dass die Komponenten nicht vom Nutzer selbst erzeugt werden sondern uber einen Injector so der Name in Google Guice erzeugt werden Dieser Injector kann fur alle notwendigen Unterkomponenten konkrete Objekte erzeugen und somit auch das angeforderte oft komplexe Objekt bereitstellen Hierfur werden fur den Injector die zu verwendenden konkreten Klassen z B fur Interfaces angegeben In Google Guice wird dies uber sog Module durchgefuhrt Module in Google Guice BearbeitenModule in Guice fassen die zu verwendenden Abhangigkeiten eines bestimmten Themengebietes zusammen Wie weit dieses Thema gefasst wird ist dem einzelnen Programmierer uberlassen und kann von Software Projekt zu Software Projekt sehr stark variieren Gemeinsam ist den Modulen dass sie zu oft abstrakten Abhangigkeiten im Projekt konkrete zu verwendende Klassen mappen bzw binden So kann z B festgelegt werden dass an jeder Stelle wo ein Typ vom Interface MailSender verwendet wird ein Objekt vom Typ NetworkMailSender injiziert wird Durch das zentrale Mapping der zu verwendenden Typen in den Modulen des Injectors konnen die tatsachlich verwendeten Objekte sehr einfach ausgetauscht werden So konnen z B in Unit Tests sehr einfach Mock Objekte z B MailSenderMock fur das Interface MailSender gebunden werden die die Funktion des Mail Versendens simulieren und somit einfache schnelle unabhangige und stabile TestCases moglich machen Scopes BearbeitenFur die zu verwendenden Objekte kann festgelegt werden wie lange die einmal erzeugten Objekte gecacht d h wiederverwendet werden sollen Diese Angaben werden in Guice Scope genannt Die popularsten Scopes sind dabei der Default Scope keine explizite Scope Angabe bei dem bei jeder Anforderung des Typs ein neues Objekt erzeugt wird oder der Singleton Scope bei dem programmweit gesteuert durch den Injector nur ein Objekt von diesem Typ existiert Die Scopes konnen fur die eigenen Zwecke erweitert werden Siehe auch BearbeitenListe von Dependency Injection FrameworksWeblinks BearbeitenGuice fur ScalaEinzelnachweise Bearbeiten Release Guice 7 0 0 12 Mai 2023 abgerufen am 14 Mai 2023 18th Annual Jolt Award winners Abgerufen von https de wikipedia org w index php title Google Guice amp oldid 208178627