Menu
Coddy logo textTech

Interfaz de administrador

Parte de la sección Programación Orientada a Objetos del Journey de Dart de Coddy — lección 105 de 110.

challenge icon

Desafío

Fácil

En la lección anterior, agregaste la funcionalidad de búsqueda a tu clase Library. Ahora vamos a crear una interfaz de administrador que permita a los usuarios privilegiados gestionar el inventario de la biblioteca: agregar libros nuevos y eliminar los existentes.

Introducirás una nueva clase Admin y mejorarás tu Library con capacidades administrativas:

  • book.dart: Mantén tu clase Book existente sin cambios.
  • user.dart: Mantén tu clase User existente sin cambios.
  • admin.dart: Crea una nueva clase Admin que represente a los administradores de la biblioteca. Un administrador tiene un id (String) y un name (String). Sobrescribe toString() para que devuelva Admin [id]: name.
  • library.dart: Agrega funcionalidad administrativa a tu clase Library:
    • Agrega una lista para almacenar los administradores registrados
    • registerAdmin(Admin admin) - agrega un administrador a la biblioteca
    • addBookAsAdmin(String adminId, Book book) - si el administrador existe, agrega el libro e imprime adminId added "title". Si el administrador no existe, imprime Unauthorized.
    • removeBook(String adminId, String isbn) - si el administrador existe y el libro existe, elimina el libro de la biblioteca e imprime adminId removed "title". Si el administrador no existe, imprime Unauthorized. Si el libro no existe, imprime Book not found.
    • getBookCount() - devuelve el número total de libros en la biblioteca
  • main.dart: Demuestra la interfaz de administrador. Crea una Library y registra un administrador (A001, Sarah Admin). Usa el administrador para agregar tres libros:
    • 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
    Imprime el recuento de libros como Total books: X. Luego intenta agregar un libro con un id de administrador no registrado A999. Elimina el segundo libro usando el administrador registrado. Imprime el recuento final de libros.

Salida esperada:

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

Pruébalo tú mismo

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

void main() {
  // TODO: Crear una Biblioteca
  
  // TODO: Crear y registrar un administrador (A001, Sarah Admin)
  
  // TODO: Usar el administrador para añadir tres libros:
  // - 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: Imprimir el recuento de libros como "Total books: X"
  
  // TODO: Intentar añadir un libro con un id de administrador no registrado A999
  
  // TODO: Eliminar el segundo libro (978-0-596-51774-8) usando el administrador registrado
  
  // TODO: Imprimir el recuento final de libros
}

Todas las lecciones de Programación Orientada a Objetos