depa MSP

39 flashcardsby Ina
Study these flashcardsFree · spaced repetition · iPhone, Android, Mac & web

All cards

1
Werden finale Felder in Java-Clone richtig kopiert? (Shallow Copy)
Ja
2
Werden finale Felder mit Copy Ctor richtig kopiert?
ja, sie können richtig initialisiert werden
3
Werden finale Felder bei Java Reflection kopiert?
Nein, sie dürfen nicht vorkommen
4
Es wird eine Deep Copy erstellt a) bei Java clone und/oder b) mit Copy Ctor
muss bei beiden selbst implementiert werden
5
Wie wird bei a) Java-Clone und b) Copy Ctor mit zyklischen Strukturen / Alias-Referenzen umgegangen?
Sie müssen selbst korrekt aufgelöst werden
6
Werden Strings in einer Shallow Copy richtig kopiert?
nein, also bei java clone per default nicht
7
Werden finale Felder bei Java Serialization richtig kopiert?
ja
8
Reflection kopiert automatisch deep, richtig oder falsch?
richtig, keine Kontrolle
9
Serialization kopiert automatisch deep, richtig oder falsch?
richtig, beschränkte Kontrolle
10
zyklische Strukturen werden sowohl bei Reflection, als auch Serialization automatisch aufgelöst.
richtig
11
ordne Java-Clone, Reflection, Copy Ctor und Serialization nach Effizienz
1) Java clone und Copy Ctor, 2) Reflection, 3) Serialization
12
Strings werden bei Reflection kopiert
falsch, sie sind als immutable registriert
13
String werden bei Serialisierung kopiert
richtig
14
Reflection braucht als einzige Methode einen nicht parametriesierten Konstruktor,
richtig, um neue Instanzen erstellen zu können
15
alle Kopiermethoden ausser der Serialisierung kompilieren mit java.lang.Cloneable
nein, alle ausser dem Copy Ctor
16
Was sollte für Information Hiding kopiert werden?
alle veränderbaren Objekte beim Herausgeben und Reinkommen
17
Was ist in Sachen Information hiding sicher?
primitive Datentypen und immutable Objects (String, Color...)
18
Was ist eine unveränderliche Klasse?
Klassen, deren Instanzen nicht verändert werden können
19
Was sind die Vorteile unveränderlicher Klassen?
einfacher zu Implementieren und zu Benutzen, sicherer und weniger fehleranfällig
20
Welche Schritte, um Klasse immutable zu machen?
1) keine Methoden zur Verfügung stellen, die den Zustand des Objekts verändert
2) Klasse als final deklarieren
3) alle Felder final deklarieren
4) alle Felder sind private
5) Zugriff auf alle veränderlichen Komponenten muss exklusiv sein
21
unveränderliche Objekte sind...
- einfach, können nur einen Zustand haben
- threadsicher
- brauchen nie defensive Kopien
- auch Interna von unveränderlichen Objekten können gemeinsam genutzt werden
- gute Bausteine für andere Objekte und Keys von Maps
- vorübergehende Inkonsistenz ist ausgeschlossen
22
Nachteil unveränderlicher Objekte
erfordern für jeden Wert ein eigenes Objekt -> kann zu Performance Problemen führen
23
alternative zu final Klassen?
Alle Konstruktoren private oder protected machen & öffentliche statische Factory Methoden einrichten
24
Decorator Objekte haben den gleichen Supertyp wie die dekorierten Objekte?
richtig
25
Das ........ Muster erweitert ein Objekt dynamisch um weitere Verantwortlichkeiten. Es bietet eine flexible Alternative zu Subklassen für die Erweiterung der Funktionalität.
Decorator
26
Vorteile Decorator Pattern
- können Verhalten zu Objekten hinzufügen
- können zur Laufzeit hinzugefügt werden
27
Decorator Klassendiagramm
28
Beispiel: Dekoratoren ineinander verpacken
Beverage b = new Whip(new Mocha(new Soy(new Houseblend(Beverage.SIZE.VENTI))))
29
Decorator Sequenzdiagramm
30
Welche Bedingung muss erfüllt sein, wenn ein Decorator zusätzliche Methoden enthält?
Der Decorator muss am Anfang der Ketter stehen
31
Decorator vs. State/Strategy
Decorator fügt Verhalten hinzu und verändert Objekt Identität,
State/Strategy ändert das Verhalten des Objekts komplett
32
Das ....... Muster verkapselt einen Auftrag von einem Objekt und ermöglicht es dadurch, andere Objekte mit verschiedenen Aufträgen zu parametrisieren, Aufträge in Warteschlangen einzureigen oder zu protokollieren oder das Rückgängigmachen von Operationen zu unterstützen.
Command
33
Klassendiagramm Command
34
allgemeine Form der Factory Method
abstract Product factoryMethod(String tye)
35
Unterschied Abstract Factory und Factory Method
Abstract = Komposition
Method = Vererbung
36
Welche Probleme kann Vererbung verursachen?
- Methoden, die in Subklassen überschrieben werden, könnten zukünftig anders funktionieren & super-calls funktionieren nicht mehr
- Sicherheitslücken (nur neue Methoden ist viel sicherer)
- neue Methoden könnten zufälligerweise die gleiche Signatur haben wie zukünftige neue Methoden in der Parent-Klasse & dann nicht mehr funktionieren
37
Wie löst man die Probleme mit Vererbung?
Komposition
38
Wie funktioneirt Komposition?
Klasse hält Instanz der "parent" Klasse und ruft in den Methoden die jeweilige Methode auf der Instanz auf. (Method forwarding)
39
Wann ist Vererbung sinnvoll?
Wenn Klasse B tatsächlich logisch eine Subklasse von Klasse A ist.
Study all 39 cards for free