2023 BUAA OOPre 课程总结

一、架构设计

        1.1 架构类图

        

        1.2 迭代调整与考虑

                        整个迭代过程中代码的整体内聚度增加,耦合度降低,重复率下降

                1.2.1 第二次作业

                        创建Main、Adventurer、Bottle、Equipment类,用HashMap容器维护冒险者所有物

                1.2.2 第三次作业

                        创建Bag、Food、Instruction类,引入携带机制,用TreeMap容器维护bag携带的Bottle、Food的id有序性,将输入解析功能从Main移到instruction中

                1.2.3 第四次作业

                       创建FightLog类,引入战斗机制,运用正则表达式匹配字符串进行输入解析,用HashMap集中管理冒险者名字和战斗日志记录输出。Instruction类重构为Manager类,以整行字符串为单位进行输入解析

                1.2.4 第六次作业

                        创建Commodity接口,分别以BottleEquipment为父类继承添加RegularBottle、RecoverBottle、ReinforcedBottleCritEquipment、RegularEquipment、EpicEquipment子类,引入价值属性和雇佣关系并递归计算总价值和最大价值。Manager以指令类型为基础分离方法,增添解析层

                1.2.5 第七次作业

                        创建Store类,实现单例模式的商店系统;冒险者增添Money属性和观察者告知关系

二、JUnit使用心得

        当代码复杂性增加时,JUnit可以迅速地排查定位到出现Bug的类/方法中,适当的单元测试利于解构复杂代码,方便debug

三、OOPre学习心得

        通过本课程的学习,我了解到面向对象编程的特点是封装、继承、多态,便于直接对现实问题建模,适合开发维护扩展庞大的工程项目。循序渐进的课程设计和迭代开发也让我初步接触了实际软件工程开发中的一些行业规范和设计模式,学会了运用层次化设计解构复杂现实问题的方法。

四、课程建议

        4.1

                一些问题场景如空瓶子的处理、价值的重复计算、观察者金钱援助等有违现实逻辑,或许可以设计更合理的应用场景。

        4.2

                增加对异常数据(0,负数等)的处理考察

                

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值