270
社区成员
发帖
与我相关
我的任务
分享
MainLaunch进行输入解析与指令判断,实现AdventurersManager进一步处理。
AdventurersManager管理各个冒险者之间的行为,大多数指令由Adventurer进行进一步处理。
Adventurer管理各个冒险者的状态,调用方法执行指令。
继承和接口能处理类与类之间的关系。
第二次作业:
Adventurer类管理冒险者,Bottle类和Equipment类管理冒险者所拥有的药水瓶和装备。第三次作业:
设置Usable接口管理可用物品(法术、药水瓶)的行为。
创建Spell抽象类管理法术,实现Usable接口,并创建HealSpell、AttackSpell子类管理不同类别的法术。
Bottle类实现Usable接口,并创建HpBottle、AtkBottle、DefBottle、ManaBottle子类管理不同种类的药水瓶。
创建Item类管理物品,使Bottle、Equipment类继承Item类进行统一管理。
优化程序入口:MainClass主类实现MainLaunch类启动程序,MainLaunch类实现AdventurersManager类管理所有冒险者的行为。
第五次作业:
创建Armour和Weapon类继承Equipment类,管理装甲与武器两种装备,并创建Sword和Magicbook类继承Weapon类,管理两种武器。
创建Backpack类管理冒险者的背包,对物品携带进行限制。
创建Factory类实现简单工厂模式。
AdventurersManager类中增加方法实现战斗事件与击杀事件的管理。
第六次作业:
Adventurer类实现Employer与Employee接口,创建雇佣关系,并重写相关方法。
创建AidEvent类管理全局的援助事件,初步实现观察者模式。
Adventurer类增加与雇佣和援助事件相关的方法。
第七次作业:
Lexer、Parser类管理词法、语法分析。JUnit 测试不需要手动比对输出数据,自动显示出程序执行过程中与预期不符的处理,便于debug 。同时对每个类进行单元测试,能大幅度缩小debug 范围,极大提升效率。
在后几次迭代过程中,对新程序进行完全的JUnit 测试很重要,否则随着代码增多,难免会出现细微的差错,导致在强测中失分。这也体现了JUnit 在大规模工程中的重要性。
从面向过程到面向对象:在面向过程编程的学习中,我们只需要在每道题目中写几个函数对数据进行计算,并按要求输出即可,基本上不考虑维护与扩展。而在面向对象编程的学习过程中,我们尝试构建较大的项目,从模块化的数据处理方式到迭代开发的思维,各个方面都进行了学习与实践。我们需要设计出结构清晰的程序,并不断扩展、重构,这是一种从写程序向设计程序的方向的转变。
checkstyle :在课程中清楚地规定了代码格式、命名规则等,能让我们养成习惯,写出可读性更好的代码,便于多人协作与交流沟通。