2026-05-22 借书系统:从零设计一个面向对象的Java项目
背景
第一次从零设计+编码一个完整的Java系统。
系统设计
三个类:Student(姓名+学号)、Book(书名/作者/编号/持有人ID)、LibraryService(借书/还书/查书)
关键决策
- 关系判断:Student-Book是聚合不是组合,学生毕业书还在
- 冗余消除:删掉boolean isBorrowed,用holderId==null判断,少一个字段少一个不一致状态
- 匹配优化:借还匹配从书名+姓名升级为编号+学号,双ID避免同名冲突
编译踩坑
- borrowBook方法缺book参数
- 双层括号语法错误
- 三个public class塞一个文件——Java一个文件只能一个public class
测试验证
两书一学生走通借书-查书-还书闭环。额外加第二个学生抢借同一本书的边界测试——else分支成功拦截。
2026-05-22 借书系统:从零设计一个面向对象的Java项目
http://example.com/2026/05/22/2026-05-22 借书系统:从零设计一个面向对象的Java项目/