首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> Java 程式設計 >> Java 相關知識

Java 圖書館管理系統實作:命令列介面與內部類設計模式教學

     編輯:Java 相關知識

以命令列介面實作圖書館借還書系統,功能包含建立圖書/讀者、借書/還書、列出所有圖書/讀者/已借出/逾期未還。每位讀者最多借 3 本書,借閱期限 3 週。本例主要展示如何使用內部類實作命令模式,取代冗長的 if-else 結構,讓程式更易擴充。

核心架構

  • LibrarySimulator:主控制器,持有圖書/讀者清單與命令映射表。
  • Command 抽象類別:定義 execute() 方法,各具體命令繼承並覆寫。
  • Book / Reader:領域模型,封裝業務邏輯 (如 isExpired()、canBorrow())。

命令類別階層

Command (abstract)
├─ Command1 : 列出所有圖書 (isValid 預設 true)
├─ Command2 extends Command1 : 列出已借出圖書 (isValid 判斷 isBorrowed)
├─ Command3 extends Command1 : 列出逾期圖書 (isValid 判斷 isExpired)
├─ Command4 : 列出所有讀者
├─ Command5 : 新增圖書
├─ Command6 : 新增讀者
├─ Command7 : 借書流程 (驗證讀者/圖書/借閱上限/日期格式)
└─ Command8 : 還書流程 (驗證歸還者與圖書對應)

關鍵設計亮點

  1. Template Method:Command1 定義遍歷邏輯,子類別只需覆寫 isValid(Book) 即可複用列印程式碼。
  2. 內部類存取外部狀態:所有 Command 內部類可直接存取 LibrarySimulator 的 books、readers 等私有欄位,無需額外參數傳遞。
  3. 輸入驗證集中化:prompt(String, String) 結合正則表達式強制使用者輸入合法格式。

程式進入點

public static void main(String[] args) {
  new LibrarySimulator().start();
}

執行後進入主選單迴圈,輸入 1-9 執行對應操作,輸入 9 離開。

教學價值

適合 Java 初學者理解:內部類封裝、命令模式、Template Method 模式、集合操作、日期處理、正則驗證等核心概念的綜合應用。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved