Menu
CoddyTech

Giao diện quản trị

Thuộc phần Lập trình hướng đối tượng trong hành trình Dart của Coddy. Bài học 105 trên 110.

challenge icon

Thử thách

Dễ

Trong bài học trước, bạn đã thêm chức năng tìm kiếm vào lớp Library. Bây giờ, hãy tạo giao diện quản trị để người dùng có quyền quản lý kho sách, thêm sách mới và xóa sách hiện có.

Bạn sẽ tạo lớp Admin mới và bổ sung các chức năng quản trị cho Library:

  • book.dart: Giữ nguyên lớp Book hiện có.
  • user.dart: Giữ nguyên lớp User hiện có.
  • admin.dart: Tạo lớp Admin mới để đại diện cho người quản trị thư viện. Người quản trị có id (String) và name (String). Ghi đè toString() để trả về Admin [id]: name.
  • library.dart: Thêm chức năng quản trị vào lớp Library:
    • Thêm một danh sách để lưu những người quản trị đã đăng ký
    • registerAdmin(Admin admin) - thêm một người quản trị vào thư viện
    • addBookAsAdmin(String adminId, Book book) - nếu người quản trị tồn tại, thêm sách và in ra adminId added "title". Nếu người quản trị không tồn tại, in ra Unauthorized.
    • removeBook(String adminId, String isbn) - nếu người quản trị và cuốn sách đều tồn tại, xóa sách khỏi thư viện và in ra adminId removed "title". Nếu người quản trị không tồn tại, in ra Unauthorized. Nếu cuốn sách không tồn tại, in ra Book not found.
    • getBookCount() - trả về tổng số sách trong thư viện
  • main.dart: Minh họa giao diện quản trị. Tạo một Library và đăng ký một người quản trị (A001, Sarah Admin). Dùng người quản trị này để thêm ba cuốn sách:
    • 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
    In số sách theo định dạng Total books: X. Sau đó, thử thêm sách bằng mã người quản trị chưa đăng ký A999. Dùng người quản trị đã đăng ký để xóa cuốn sách thứ hai. In số sách cuối cùng.

Đầu ra dự kiến:

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

Tự làm thử

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

void main() {
  // TODO: Tạo một Library
  
  // TODO: Tạo và đăng ký một quản trị viên (A001, Sarah Admin)
  
  // TODO: Dùng quản trị viên để thêm ba cuốn sách:
  // - 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: In số lượng sách theo dạng "Total books: X"
  
  // TODO: Thử thêm một cuốn sách bằng mã quản trị viên A999 chưa đăng ký
  
  // TODO: Dùng quản trị viên đã đăng ký để xóa cuốn sách thứ hai (978-0-596-51774-8)
  
  // TODO: In số lượng sách cuối cùng
}

Tất cả bài học trong Lập trình hướng đối tượng

Tự luyện tập: Trình biên dịch Dart online