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 étendre votre Library avec des fonctionnalités d’administration :

  • book.dart : conservez votre classe Book existante telle quelle.
  • user.dart : conservez votre classe User existante telle quelle.
  • 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 qu’elle retourne Admin [id]: name.
  • library.dart : ajoutez des fonctionnalités d’administration à 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, affichez Unauthorized.
    • removeBook(String adminId, String isbn) — si l’administrateur et le livre existent, supprime le livre de la bibliothèque et affiche adminId removed "title". Si l’administrateur n’existe pas, affichez Unauthorized. Si le livre n’existe pas, affichez Book not found.
    • getBookCount() — retourne le nombre total de livres dans la bibliothèque
  • main.dart : présentez 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 l’identifiant d’administrateur non enregistré A999. Supprimez le deuxième livre en utilisant l’administrateur enregistré. Affichez le nombre final de livres.

Résultat attendu :

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

Entraînez-vous par vous-même : Compilateur Dart en ligne