大鱼吃小鱼程序分析

📅 2026/7/3 1:21:30 👁️ 阅读次数 📝 编程学习
大鱼吃小鱼程序分析

一、项目整体分包架构 本项目遵循面向对象编程与单一职责思想分层分包,划分为 `entity`、`game`、`view`、`util`、`db` 五大功能包,搭配程序入口 `Main` 类,模块边界清晰、耦合度低,便于后期迭代维护。 1. `entity` 实体包:封装项目所有数据与游戏对象,设计抽象父类`Fish`统一封装鱼类坐标、移动、绘制公共逻辑,派生出玩家鱼`PlayerFish`、敌方鱼`EnemyFish`;独立道具类`Prop`管理护盾时效、碰撞检测属性;`RankItem`封装排行榜数据载体。 2. `game` 游戏核心包:仅存放`GamePanel`游戏画布,承载游戏帧率循环、画面渲染、敌鱼随机生成、碰撞吞噬、道具刷新等全部核心玩法,实现`Runnable`接口开启独立动画子线程。 3. `view` 视图包:基于Swing实现桌面可视化窗口,`LoginFrame`完成账号注册、登录与密码校验,`RankFrame`以表格展示TOP10游戏得分榜单,负责全部用户交互弹窗。 4. `util` 工具包:封装通用静态工具,`MD5Util`实现用户密码单向加密存储,`ExcelUtil`提供排行榜成绩本地导出能力。 5. `db` 数据持久层:`DBUtil`统一管理SQLite数据库连接;`UserDAO`、`RankDAO`分别封装用户账号、游戏得分的增删查改逻辑,实现业务界面与SQL代码解耦。 程序入口`Main`负责项目启动,运行后优先加载登录界面。

二、核心类结构与关联关系 1. 继承关系:`PlayerFish`、`EnemyFish`继承抽象父类`Fish`,复用移动、绘图公共方法,仅拓展自身独有属性与吞噬判定规则,减少代码冗余。 2. 实现关系:`GamePanel`实现`Runnable`,独立开启子线程驱动游戏循环,避免单线程渲染造成界面卡顿、交互阻塞。 3. 依赖关系:游戏画布依赖实体鱼类、道具类完成运行逻辑;登录窗口关联游戏画布、排行榜窗口实现页面跳转;数据操作DAO类依赖数据库工具类完成本地数据读写。 整套分层架构严格遵循单一职责、高内聚低耦合设计原则,修改游戏玩法、前端界面、数据库逻辑任一模块,均不会对其他模块产生大范围影响,拓展性与可维护性良好。