SA4

...

...


L. H.
Diese Lernkarten behandeln fortgeschrittene Konzepte der Softwareentwicklung, insbesondere die Nutzung von Dependency Injection und OSGi-Komponenten. Sie beleuchten die Vorteile von Dependency Injection, die Zustände von Plug-Ins und die Eigenschaften von OSGi-Komponenten. Zudem wird erklärt, wie Scopes in der Injektion angewendet werden und welche Scopes Guice bietet. Diese Karteikarten richten sich an Entwickler, die ihre Fähigkeiten in modularer Softwarearchitektur und losen Kopplungen vertiefen möchten, um effizientere und wartbare Anwendungen zu erstellen.
Cartes-fiches
8
Utilisateurs
1
Langue
Allemand
Catégorie
Informatique
Niveau
Autres
Créé / Mis à jour
14.07.2016 / 14.07.2016

Cartes-fiches

Nennen sie die drei Wege zum Injection und geben Sie jeweils ein Beispiel.

  • Field Injection
    public class Order {
       @Inject
       private Payment payment;
    }
  • Constructor Injection
    @Inject
    public Order(Payment payment) {
       this.payment = payment;
    }
  • Methode Injection
    @Inject
    public void setPayment(Payment payment) {
       this.payment = payment;
    }

Welche 4 Scopes bietet Guice? 

  • Unscoped (default): neues Objekt bei jeder Injection
  • Singleton: bei jeder Injection das gleiche Objekt
  • RequestScoped: ene pro Web/RPC request
  • SessionScoped: eine pro HTTP Session

Was versteht man unter einem Scope?

  • Der Scope entscheidet, ob die Injektion eine neue Instanz erstellt oder ein vorhandenes Objekt wiederverwendet wird

Erläutern Sie zwei Möglichkeiten, Scope anzuwenden und geben Sie jeweils ein Beispiel.

  • Als Annotation in der Klasse, die injected wird
         @Singelton
         public class MyImpl extends Interface { … }
  • In der Modul Beschreibung
         bind(Interface.class).to(MyImpl.class).in(Singleton.class);

Beschreiben Sie, was OSGi Komponenten sind und haben können?
Nennen Sie die Eigenschaften von OSGI Komponenten.

(OSGi = standardisiertes Komponentenmodell für Java)

  • Abgeschlossen
  • Cohesive
  • Loose Bindung
  • Explizite Interfaces
  • Deployable

Welche Zustände kann ein Plug-In haben und in welchem Zustand muss das Plug-In sein damit ein Update des Modules durchgeführt werden kann (Life Cycle)?

  • Installed, Resolved, Uninstalled, Starting, Active, Stopping
  • für Updates: Installed oder Resolved

Nennen Sie 4 Gründe, warum Eclipse die Rich Client Platform verwendet?

  • Konsequentes, natives Look & Feel über Anwendungen & Funktionen hinweg
  • Gemeinsame Anwendungsdienste
  • First-class Entwicklungstools
  • Entwickler kann Fokus auf eigentliche Anwendung zu legen, nicht auf Overhead

Welche Vorteile bietet die Dependency Injection? Was wird hier injiziert? Worüber?

  • Abhängigkeiten zu konkreten Implementierungen auflösen indem man z.B mit Interfaces arbeitet
  • Vorteile: Lose Kopplung, Austauschbare Implementierung
  • Injected wird eine konkrete Instanz
  • Über Field, Method oder Constructor Injection

Étudier