Menu
Coddy logo textTech

Admin-Interface

Teil des Abschnitts Objektorientierte Programmierung der Dart-Journey von Coddy — Lektion 105 von 110.

challenge icon

Aufgabe

Einfach

In der vorherigen Lektion haben Sie Ihrer Library-Klasse eine Suchfunktion hinzugefügt. Lassen Sie uns nun eine Admin-Schnittstelle erstellen, die es privilegierten Benutzern ermöglicht, den Bestand der Bibliothek zu verwalten – also neue Bücher hinzuzufügen und vorhandene zu entfernen.

Sie werden eine neue Admin-Klasse einführen und Ihre Library um administrative Funktionen erweitern:

  • book.dart: Lassen Sie Ihre bestehende Book-Klasse unverändert.
  • user.dart: Lassen Sie Ihre bestehende User-Klasse unverändert.
  • admin.dart: Erstellen Sie eine neue Admin-Klasse, die Bibliotheksadministratoren repräsentiert. Ein Admin hat eine id (String) und einen name (String). Überschreiben Sie toString(), um Admin [id]: name zurückzugeben.
  • library.dart: Fügen Sie Ihrer Library-Klasse administrative Funktionen hinzu:
    • Fügen Sie eine Liste hinzu, um registrierte Admins zu speichern
    • registerAdmin(Admin admin) – fügt einen Admin zur Bibliothek hinzu
    • addBookAsAdmin(String adminId, Book book) – wenn der Admin existiert, fügt das Buch hinzu und gibt adminId added "title" aus. Wenn der Admin nicht existiert, geben Sie Unauthorized aus.
    • removeBook(String adminId, String isbn) – wenn der Admin existiert und das Buch existiert, entfernen Sie das Buch aus der Bibliothek und geben Sie adminId removed "title" aus. Wenn der Admin nicht existiert, geben Sie Unauthorized aus. Wenn das Buch nicht existiert, geben Sie Book not found aus.
    • getBookCount() – gibt die Gesamtzahl der Bücher in der Bibliothek zurück
  • main.dart: Demonstrieren Sie die Admin-Schnittstelle. Erstellen Sie eine Library und registrieren Sie einen Admin (A001, Sarah Admin). Verwenden Sie den Admin, um drei Bücher hinzuzufügen:
    • 978-0-13-468599-1, The Pragmatic Programmer, David Thomas
    • 978-0-596-51774-8, JavaScript: The Good Parts, Douglas Crockford
    • 978-0-13-235088-4, Clean Code, Robert Martin
    Geben Sie die Anzahl der Bücher als Total books: X aus. Versuchen Sie dann, ein Buch mit einer nicht registrierten Admin-ID A999 hinzuzufügen. Entfernen Sie das zweite Buch mit dem registrierten Admin. Geben Sie die endgültige Anzahl der Bücher aus.

Erwartete Ausgabe:

A001 added "The Pragmatic Programmer"
A001 added "JavaScript: The Good Parts"
A001 added "Clean Code"
Total books: 3
Unauthorized
A001 removed "JavaScript: The Good Parts"
Total books: 2

Probier es selbst

import 'book.dart';
import 'user.dart';
import 'library.dart';
import 'admin.dart';

void main() {
  // TODO: Erstelle eine Library
  
  // TODO: Erstelle und registriere einen Admin (A001, Sarah Admin)
  
  // TODO: Verwende den Admin, um drei Bücher hinzuzufügen:
  // - 978-0-13-468599-1, The Pragmatic Programmer, David Thomas
  // - 978-0-596-51774-8, JavaScript: The Good Parts, Douglas Crockford
  // - 978-0-13-235088-4, Clean Code, Robert Martin
  
  // TODO: Gib die Anzahl der Bücher als "Total books: X" aus
  
  // TODO: Versuche, ein Buch mit einer nicht registrierten Admin-ID A999 hinzuzufügen
  
  // TODO: Entferne das zweite Buch (978-0-596-51774-8) unter Verwendung des registrierten Admins
  
  // TODO: Gib die endgültige Anzahl der Bücher aus
}

Alle Lektionen in Objektorientierte Programmierung