Menu
Coddy logo textTech

Interface Administrativa

Parte da seção Programação Orientada a Objetos do Journey de Dart da Coddy. Lição 105 de 110.

challenge icon

Desafio

Fácil

Na lição anterior, você adicionou a funcionalidade de pesquisa à sua classe Library. Agora vamos criar uma interface de administrador que permite que usuários com privilégios gerenciem o inventário da biblioteca — adicionando novos livros e removendo os existentes.

Você introduzirá uma nova classe Admin e aprimorará sua Library com recursos administrativos:

  • book.dart: Mantenha sua classe Book existente inalterada.
  • user.dart: Mantenha sua classe User existente inalterada.
  • admin.dart: Crie uma nova classe Admin que represente os administradores da biblioteca. Um administrador possui um id (String) e um name (String). Substitua toString() para retornar Admin [id]: name.
  • library.dart: Adicione funcionalidades administrativas à sua classe Library:
    • Adicione uma lista para armazenar os administradores registrados
    • registerAdmin(Admin admin) — adiciona um administrador à biblioteca
    • addBookAsAdmin(String adminId, Book book) — se o administrador existir, adiciona o livro e imprime adminId added "title". Se o administrador não existir, imprima Unauthorized.
    • removeBook(String adminId, String isbn) — se o administrador e o livro existirem, remove o livro da biblioteca e imprime adminId removed "title". Se o administrador não existir, imprima Unauthorized. Se o livro não existir, imprima Book not found.
    • getBookCount() — retorna o número total de livros na biblioteca
  • main.dart: Demonstre a interface de administrador. Crie uma Library e registre um administrador (A001, Sarah Admin). Use o administrador para adicionar três livros:
    • 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
    Imprima a quantidade de livros como Total books: X. Em seguida, tente adicionar um livro com o id de administrador não registrado A999. Remova o segundo livro usando o administrador registrado. Imprima a quantidade final de livros.

Saída 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

Experimente você mesmo

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

void main() {
  // TODO: Criar uma Biblioteca
  
  // TODO: Criar e registrar um administrador (A001, Sarah Admin)
  
  // TODO: Usar o administrador para adicionar três livros:
  // - 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 a contagem de livros como "Total books: X"
  
  // TODO: Tentar adicionar um livro com um id de administrador não registrado A999
  
  // TODO: Remover o segundo livro (978-0-596-51774-8) usando o administrador registrado
  
  // TODO: Imprimir a contagem final de livros
}

Todas as lições de Programação Orientada a Objetos

Pratique por conta própria: Compilador de Dart online