2023 OOpre课程总结

王嘉懿-21376344 学生 2023-11-08 16:29:53

一、作业最终的架构设计以及在迭代中的架构调整与考虑

1、架构设计

·Main:用于接收发自屏幕的输入,并将相应输入传输给“dealWithScanner”类进行处理

·DealWithScanner:对屏幕输入进行以Case为基调的基础处理,并且会调用到fullMap中的数据内容以及toolFunction中的工具函数

·CaseSelection:对DealWithScanner类的case进行分类讨论,并给到相应的数据处理和输出

·FullMap:对程序中涉及到的Adventurers进行一个总记录,供给给其余需要使用总体Adventurers的类进行调用与处理

·ToolFunction:包含了包括getDamge和getHeal等在数据处理时需要使用的工具函数

·Adventurer:是对“冒险者”这一形象的归类,内含属性包括但不限于冒险者的id、name、hitpoint、money、所拥有的药水瓶和装备等内容,并且内置了用于比如删除各项物品以及改变体力值的函数

·Bottle(由RecoverBottle、RegularBottle、ReinforcedBottle继承):即对药水瓶这一形象的归类,内置属性包括但不限于药水的最大容量和现有状态以及药水的id、name等属性,并赋予了具有改变现有状态、清空药水瓶等功能的函数

·Equipment(由RegularEquipment、EpicEquipment、CritEquipment继承):即对装备这一形象的归类,内含属性包括但不限于装备的id、name、星级、others属性等,并且赋予了访问各项属性的函数

·Food:即食物这一形象的归类,内置属性包括但不限于食物的能量、id、name等属性,内含有访问与改变各属性的相应函数

·BackPack:对adventurer背包功能的实现,内含对携带物品的检索以及有关于携带物品的所有处理(包括但不限于卸下、携带、卖出等操作)

·BattleLog:对战斗系统的实现,用于记述战斗日志中发生的所有内容以便后续的查阅和调用

·Store:对商店系统的实现,用于记录所有的卖出记录,并且给出需要买进商品的属性、售价

·Commodity:对各项物品其作为“价值体”这一形象的刻画,包含了得到各个价值体价值总量的功能

2、架构调整与考虑

在作者对于整体架构的调整这一方面,在学习之初,我仍然未能摆脱c的思维方式,力求把所用功能以最少的类别完成,这就导致了代码在一个类中的堆积与冗长的现象,在一次次迭代与课上的学习中,我逐渐意识到了这一点,在后续的迭代中,我对整体架构进行了一次大的调整,将原本由Main类负责的输入、处理和输出的责任分别交由Main(new)、CaseSelection和ToolFunction等类进行分则处理,并且在后续新加功能的实现时,我也力求达到“不同类别各司其职”的效果,防止代码冗杂堆积,交错耦合,试图发挥java这一语言的优势

二、使用Junit的心得体会

如果仅仅谈及Junit的功能优越性,我觉得这是毋庸置疑的,其作为一种强力的debug手段实际上的使用是非常方便的,但是我个人在这次课程的迭代开发时其实是不太依赖Junit来消除bug的,因为idea这一款软件在添加了相应的插件和扩展之后,其本身具有的debug方法已经足够强大,已经足以应对大部分的bug问题

三、学习OOpre的心得体会

在半学期的迭代开发历程中,总体看下来其实是一次非常有趣且有益的经历,课程组精心设计的基于“异世界”这一火爆ip的小游戏迭代开发具有相当的趣味性,再加上每次作业发布时无微不至的“作业指导书”,可以说我对java语言的总体理解以及在书写带代码能力等方面得到了非常大的提高,为之后的OO学习打下了坚实的基础,而最为关键的体会则是体现在上文中我对于代码整体架构的调整和考虑

四、对OOpre课程的建议

其实总体的课程设计很好很用心,只是单纯感觉Junit这一环节有点食之无味弃之可惜,因为idea本身用于debug的能力已经十分强大了

再加上大部分学生是不太需要Junit这一功能来不挣debug能力的(),感觉或许可以不要太执着于对Junit多项指标的硬性要求(?)

 

...全文
44 回复 打赏 收藏 转发到动态 举报
写回复
用AI写文章
回复
切换为时间正序
请发表友善的回复…
发表回复

303

社区成员

发帖
与我相关
我的任务
社区描述
2023年北航面向对象设计与构造
学习 高校
社区管理员
  • YannaZhang
  • CajZella
  • C_ecelia
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧