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 busca à sua classe Library. Agora, vamos criar uma interface de administrador que permite que usuários privilegiados 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). Sobrescreva o método toString() para retornar Admin [id]: name.
  • library.dart: Adicione funcionalidades administrativas à sua classe Library:
    • Adicione uma lista para armazenar 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, imprime Unauthorized.
    • removeBook(String adminId, String isbn) - se o administrador existir e o livro existir, remove o livro da biblioteca e imprime adminId removed "title". Se o administrador não existir, imprime Unauthorized. Se o livro não existir, imprime Book not found.
    • getBookCount() - retorna o número total de livros na biblioteca
  • main.dart: Demonstre a interface administrativa. 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 contagem de livros como Total books: X. Em seguida, tente adicionar um livro com um id de administrador não registrado A999. Remova o segundo livro usando o administrador registrado. Imprima a contagem 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