这里写自定义目录标题
- 包图
- 类图
一、项目整体分包架构
本项目基于面向对象思想分层分包,共划分 entity、game、view、util、dao、db 六大包,搭配程序入口 Main 类,职责划分清晰,低耦合易维护。
entity 实体包:存放游戏所有对象实体,抽象父类 Fish 封装鱼类通用坐标、移动、绘制逻辑,派生玩家鱼 PlayerFish、敌鱼 EnemyFish;Prop 为独立道具类,管理护盾属性与碰撞判定。
game 游戏核心包:仅包含 GamePanel 画布类,承载游戏主循环、画面渲染、敌鱼生成、碰撞检测、道具刷新全部核心玩法逻辑,实现 Runnable 完成多线程动画。
view 视图包:LoginFrame 登录窗口实现账号登录校验,RankFrame 负责展示游戏得分排行榜,基于 Swing 完成桌面弹窗交互。
util 工具包:MD5Util 对登录密码加密,ExcelUtil 实现排行榜成绩导出功能。
db 与 dao 数据层:DBUtil 提供 SQLite 数据库连接,UserDAO、RankDAO 分别操作用户信息与游戏得分,RankItem 封装排行榜数据实体。
Main 作为程序启动入口,程序运行后直接加载登录界面。
二、核心类结构与关系说明
继承关系:PlayerFish、EnemyFish 共同继承抽象类 Fish,复用移动、绘图方法,仅各自拓展专属属性;
实现关系:GamePanel 实现 Runnable 接口,开启独立子线程刷新画面,避免界面卡顿;
依赖关系:GamePanel 依赖鱼类、道具类完成游戏逻辑;登录窗口依赖游戏画布与排行榜窗口;数据访问类依赖数据库工具类读写本地数据。
整套架构遵循单一职责原则,修改玩法、界面、数据库任意模块都不会大面积影响其他代码,拓展性较强。