Menu
Coddy logo textTech

Интерфейс администратора

Часть раздела Объектно-ориентированное программирование путешествия по Dart на Coddy — урок 105 из 110.

challenge icon

Задание

Легко

В предыдущем уроке вы добавили функциональность поиска в свой класс Library. Теперь давайте создадим интерфейс администратора, который позволит привилегированным пользователям управлять инвентарем библиотеки — добавлять новые книги и удалять существующие.

Вы введете новый класс Admin и расширите свою Library административными возможностями:

  • book.dart: Оставьте существующий класс Book без изменений.
  • user.dart: Оставьте существующий класс User без изменений.
  • admin.dart: Создайте новый класс Admin, который представляет администраторов библиотеки. У администратора есть id (String) и name (String). Переопределите toString(), чтобы он возвращал Admin [id]: name.
  • library.dart: Добавьте административную функциональность в ваш класс Library:
    • Добавьте список для хранения зарегистрированных администраторов
    • registerAdmin(Admin admin) — добавляет администратора в библиотеку
    • addBookAsAdmin(String adminId, Book book) — если администратор существует, добавляет книгу и выводит adminId added "title". Если администратор не существует, выводит Unauthorized.
    • removeBook(String adminId, String isbn) — если администратор существует и книга существует, удаляет книгу из библиотеки и выводит adminId removed "title". Если администратор не существует, выводит Unauthorized. Если книга не найдена, выводит Book not found.
    • getBookCount() — возвращает общее количество книг в библиотеке
  • main.dart: Продемонстрируйте интерфейс администратора. Создайте Library и зарегистрируйте администратора (A001, Sarah Admin). Используйте администратора, чтобы добавить три книги:
    • 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
    Выведите количество книг в формате Total books: X. Затем попробуйте добавить книгу с незарегистрированным id администратора A999. Удалите вторую книгу, используя зарегистрированного администратора. Выведите итоговое количество книг.

Ожидаемый вывод:

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

Попробуйте сами

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

void main() {
  // TODO: Создать библиотеку
  
  // TODO: Создать и зарегистрировать администратора (A001, Sarah Admin)
  
  // TODO: Использовать администратора для добавления трех книг:
  // - 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: Вывести количество книг в формате "Total books: X"
  
  // TODO: Попробовать добавить книгу, используя незарегистрированный ID администратора A999
  
  // TODO: Удалить вторую книгу (978-0-596-51774-8), используя зарегистрированного администратора
  
  // TODO: Вывести итоговое количество книг
}

Все уроки раздела Объектно-ориентированное программирование