2026-05-22 借书系统:从零设计一个面向对象的Java项目

背景

第一次从零设计+编码一个完整的Java系统。

系统设计

三个类:Student(姓名+学号)、Book(书名/作者/编号/持有人ID)、LibraryService(借书/还书/查书)

关键决策

  1. 关系判断:Student-Book是聚合不是组合,学生毕业书还在
  2. 冗余消除:删掉boolean isBorrowed,用holderId==null判断,少一个字段少一个不一致状态
  3. 匹配优化:借还匹配从书名+姓名升级为编号+学号,双ID避免同名冲突

编译踩坑

  • borrowBook方法缺book参数
  • 双层括号语法错误
  • 三个public class塞一个文件——Java一个文件只能一个public class

测试验证

两书一学生走通借书-查书-还书闭环。额外加第二个学生抢借同一本书的边界测试——else分支成功拦截。


2026-05-22 借书系统:从零设计一个面向对象的Java项目
http://example.com/2026/05/22/2026-05-22 借书系统:从零设计一个面向对象的Java项目/
作者
北街
发布于
2026年5月22日
许可协议