Menu
Coddy logo textTech

Interface d'administration

Fait partie de la section Programmation Orientée Objet du Journey Dart de Coddy — leçon 105 sur 110.

challenge icon

Défi

Facile

Dans la leçon précédente, vous avez ajouté une fonctionnalité de recherche à votre classe Library. Créons maintenant une interface d'administration qui permet aux utilisateurs privilégiés de gérer l'inventaire de la bibliothèque - en ajoutant de nouveaux livres et en supprimant ceux qui existent déjà.

Vous allez introduire une nouvelle classe Admin et enrichir votre Library avec des capacités administratives :

  • book.dart : Conservez votre classe Book existante sans modification.
  • user.dart : Conservez votre classe User existante sans modification.
  • admin.dart : Créez une nouvelle classe Admin qui représente les administrateurs de la bibliothèque. Un administrateur possède un id (String) et un name (String). Surchargez toString() pour retourner Admin [id]: name.
  • library.dart : Ajoutez des fonctionnalités administratives à votre classe Library :
    • Ajoutez une liste pour stocker les administrateurs enregistrés
    • registerAdmin(Admin admin) - ajoute un administrateur à la bibliothèque
    • addBookAsAdmin(String adminId, Book book) - si l'administrateur existe, ajoute le livre et affiche adminId added "title". Si l'administrateur n'existe pas, affiche Unauthorized.
    • removeBook(String adminId, String isbn) - si l'administrateur existe et que le livre existe, retire le livre de la bibliothèque et affiche adminId removed "title". Si l'administrateur n'existe pas, affiche Unauthorized. Si le livre n'existe pas, affiche Book not found.
    • getBookCount() - retourne le nombre total de livres dans la bibliothèque
  • main.dart : Démontrez l'interface d'administration. Créez une Library et enregistrez un administrateur (A001, Sarah Admin). Utilisez l'administrateur pour ajouter trois livres :
    • 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
    Affichez le nombre de livres sous la forme Total books: X. Essayez ensuite d'ajouter un livre avec un identifiant d'administrateur non enregistré A999. Supprimez le deuxième livre en utilisant l'administrateur enregistré. Affichez le nombre final de livres.

Sortie attendue :

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

Essayez vous-même

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

void main() {
  // TODO: Créer une Library
  
  // TODO: Créer et enregistrer un admin (A001, Sarah Admin)
  
  // TODO: Utiliser l'admin pour ajouter trois livres :
  // - 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: Afficher le nombre de livres sous la forme "Total books: X"
  
  // TODO: Essayer d'ajouter un livre avec un id d'admin non enregistré A999
  
  // TODO: Supprimer le deuxième livre (978-0-596-51774-8) en utilisant l'admin enregistré
  
  // TODO: Afficher le nombre final de livres
}

Toutes les leçons de Programmation Orientée Objet