Menu
Coddy logo textTech

管理者インターフェース

CoddyのDartジャーニー「オブジェクト指向プログラミング」セクションの一部 — レッスン 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)。この管理者を使用して、以下の3冊の本を追加してください:
    • 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 で本を追加しようとしてみてください。その後、登録済みの管理者を使用して2冊目の本を削除します。最後に、最終的な本の数を出力します。

期待される出力:

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: Library を作成する
  
  // TODO: 管理者 (A001, Sarah Admin) を作成して登録する
  
  // TODO: 管理者を使用して3冊の本を追加する:
  // - 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: 登録済みの管理者を使用して2冊目の本 (978-0-596-51774-8) を削除する
  
  // TODO: 最終的な本の数を表示する
}

オブジェクト指向プログラミングのすべてのレッスン