Mindflux: Sicherheit, Datenintegrität und Navigation härten
This commit is contained in:
@@ -0,0 +1,77 @@
|
||||
{
|
||||
"title": "Entwurfsmuster",
|
||||
"questions": [
|
||||
{
|
||||
"category": "Grundlagen",
|
||||
"hint": "Zweck von Entwurfsmustern.",
|
||||
"text": "Was ist ein Entwurfsmuster?",
|
||||
"answers": [
|
||||
"Eine bewährte, wiederverwendbare Lösungsschablone für ein häufiges Entwurfsproblem.",
|
||||
"Eine fertige Code-Bibliothek, die direkt eingebunden wird.",
|
||||
"Ein Werkzeug zur automatischen Codegenerierung aus UML-Diagrammen."
|
||||
],
|
||||
"correct": 0,
|
||||
"explanation": "Ein Entwurfsmuster beschreibt eine Struktur und ihr Zusammenspiel – es ist kein fertiger Code, sondern eine Schablone."
|
||||
},
|
||||
{
|
||||
"category": "Singleton",
|
||||
"hint": "Genau eine Instanz.",
|
||||
"text": "Welches Merkmal gehört zwingend zum Singleton-Muster?",
|
||||
"answers": [
|
||||
"Ein öffentlicher Konstruktor, damit jede Klasse Instanzen erzeugen kann.",
|
||||
"Ein privater Konstruktor und eine statische Zugriffsmethode auf die einzige Instanz.",
|
||||
"Eine Liste von Beobachtern, die bei Änderungen benachrichtigt werden."
|
||||
],
|
||||
"correct": 1,
|
||||
"explanation": "Der private Konstruktor verhindert Fremd-Instanziierung; getInstance() liefert immer dieselbe Instanz."
|
||||
},
|
||||
{
|
||||
"category": "Factory",
|
||||
"hint": "Objekterzeugung kapseln.",
|
||||
"text": "Welches Problem löst die Fabrikmethode (Factory)?",
|
||||
"answers": [
|
||||
"Sie sorgt dafür, dass Objekte automatisch gelöscht werden.",
|
||||
"Sie verschlüsselt die Kommunikation zwischen Objekten.",
|
||||
"Sie kapselt die Objekterzeugung, sodass der Client nur das Interface kennt."
|
||||
],
|
||||
"correct": 2,
|
||||
"explanation": "Die Fabrik entscheidet, welche konkrete Klasse instanziiert wird – neue Varianten erfordern keine Änderung im Client-Code."
|
||||
},
|
||||
{
|
||||
"category": "Observer",
|
||||
"hint": "1:n-Abhängigkeit.",
|
||||
"text": "Wann ist das Observer-Muster die richtige Wahl?",
|
||||
"answers": [
|
||||
"Wenn mehrere Objekte automatisch über Zustandsänderungen eines Objekts informiert werden sollen.",
|
||||
"Wenn von einer Klasse nur eine einzige Instanz existieren darf.",
|
||||
"Wenn die Erzeugung von Objekten zentralisiert werden soll."
|
||||
],
|
||||
"correct": 0,
|
||||
"explanation": "Das Subjekt benachrichtigt alle angemeldeten Beobachter – lose gekoppelt über ein gemeinsames Interface."
|
||||
},
|
||||
{
|
||||
"category": "MVC",
|
||||
"hint": "Drei Verantwortlichkeiten.",
|
||||
"text": "Welche Aufgabe hat der Controller im MVC-Muster?",
|
||||
"answers": [
|
||||
"Er speichert die Daten und enthält die Geschäftslogik.",
|
||||
"Er nimmt Benutzereingaben entgegen, ruft das Model auf und wählt die View.",
|
||||
"Er stellt die Daten grafisch für den Benutzer dar."
|
||||
],
|
||||
"correct": 1,
|
||||
"explanation": "Model = Daten/Logik, View = Darstellung, Controller = Vermittler zwischen Eingabe, Model und View."
|
||||
},
|
||||
{
|
||||
"category": "MVC",
|
||||
"hint": "Vorteile der Trennung.",
|
||||
"text": "Welcher Vorteil ergibt sich direkt aus der MVC-Trennung?",
|
||||
"answers": [
|
||||
"Die Anwendung benötigt keine Datenbank mehr.",
|
||||
"Der Quellcode wird automatisch schneller ausgeführt.",
|
||||
"Oberfläche und Logik sind getrennt test- und austauschbar."
|
||||
],
|
||||
"correct": 2,
|
||||
"explanation": "Durch die Trennung der Schichten lassen sich Views austauschen und Model-Logik isoliert testen."
|
||||
}
|
||||
]
|
||||
}
|
||||
Reference in New Issue
Block a user