1. 程式人生 > >專案1第四課——圖書管理系統書籍容器及完善管理員

專案1第四課——圖書管理系統書籍容器及完善管理員

這節課來搞一個書籍容器和完善管理員

 

BookContainer:

 

package com.bookmanagement;



import java.util.Collection;

import java.util.HashMap;

import java.util.Map;



//書籍資訊容器

public class BookContainer {

    //說明一下,books的鍵是書的id

    private Map<String, Book> books
= new HashMap<>();     private static BookContainer instance = new BookContainer();     private BookContainer(){}     //顯然書籍資訊容器應該是一個單例,且應該在程式啟動時就初始化好     public static BookContainer getInstance()     {        
return instance;     }     public void addBook(Book book)     {         books.put(book.getId(),book);     }     public void deleteBook(String bookId)     {        
books.remove(bookId);     }     public void updateBook(Book book) throws Exception {         if (!books.containsKey(book.getId()))             throw new Exception("不存在這本書");         //這個是丟擲異常(exception),表明這不是我們想要的結果,如果這個異常不被捕獲(catch)的話程式會立刻停止執行         else             addBook(book)//map在put相同的key時後來的值會覆蓋前面的值     }     public Book findById(String bookId)     {         return books.get(bookId);     }     public Collection<Book> findAll()     {         return books.values();     } }

 

 

Admin:

 

package com.bookmanagement;



import java.util.Collection;



public class Admin {

    private String username = "admin";

    private String password = "123456";

    private static Admin admin;

    private BookContainer container = BookContainer.getInstance();



    //讓其他人無法訪問構造器

    private Admin() {

    }



    /**

     * 管理員擁有的許可權:

     * 1. 錄入書籍資訊

     * 2. 刪除書籍資訊

     * 3. 修改書籍資訊

     * 4. 查詢書籍資訊

     * @return

     */



    public void insertBook(Book book)

    {

        container.addBook(book);

    }



    public void delete(String bookId)

    {

        container.deleteBook(bookId);

    }



    public void uodateBookInfo(Book book)

    {

        try{

            container.updateBook(book);

        }catch (Exception e) {

            //這裡就是捕獲異常,異常的捕獲必須通過 try-catch來進行,具體細節以後講

            System.out.println(e.getMessage());

        }

    }



    public Collection<Book> findAllBooks()

    {

        return container.findAll();

    }



    public Book findBookById(String bookId)

    {

        return container.findById(bookId);

    }









    //保證整個專案只能有一個管理員

    //這種寫法叫單例模式,以後會講

    public static Admin getInstance()

    {

        if (admin == null)

            admin = new Admin();

        return admin;

    }



    public String getUsername() {

        return username;

    }



    public void setUsername(String username) {

        this.username = username;

    }



    public String getPassword() {

        return password;

    }



    public void setPassword(String password) {

        this.password = password;

    }

}