Files
mindflux/src/main/resources/static/finalflux/questions/ap2_fiae_entwurfsmuster.json
T

78 lines
3.3 KiB
JSON
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
{
"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."
}
]
}