BUAA_OOpre课程作业迭代最终架构设计(申优代码)

架构简介:

一、src文件夹包含了五部分:
  1. config项目全局配置,对项目对象做到统一管理,主要包括静态Adventure集合、静态FightLog集合等

  2. constants常量集合,对项目中多次使用的变量值进行统一赋值,主要包括枚举类、正则表达式及其他常量

  3. entity实体类集合,对具有一定属性的实体进行封装得到的类,主要包括Adventure、Bottle、Equipment、Food等

  4. util工具类集合,可复用的静态方法,主要包括Op(输入参数处理)和FightLog(战斗日志处理)等

  5. Main项目启动入口

二、具体说明entity类的架构:
  • entity中含有五部分:
    • adventurer(内置Adventurer和Adventurers两个类)前者处理Adv的业务,后者内置adventurer管理方法,可通过不同索引方式得到adv,二者是聚合关系
    • fightlog(内置FightLog和FightLogs两个类)与adventure逻辑类似
    • prop(道具抽象类,将bot、food、equ统一抽象成adv的道具)好处是可以在Adv业务处理时统一处理prop,具体怎么实现逻辑下放给prop中的子类
    • Commodity(接口,adv、prop连接此接口)统一计算价值体价值和数量的方法
    • Store(单例模式,内含工厂模式,提供售卖功能)
三、再具体说明下Prop的架构:
  • Prop是一个抽象类,又含有两个抽象类Bottle、Equipment继承于Prop(Food没有再细分的子类,故不抽象直接继承于Prop)Bottle、Equipment则有各自实现不同功能的子类,计算回血量、攻击伤害等再最底层的子类中实现。

设计细节:

  1. Adventurers和FightLogs的在config中静态化,这样可以全局应用(主要是在Op类中)
  2. Prop中有use、carry的抽象方法,在Bottle、Equipment、Food中实现use、carry逻辑至于use中回血量和造成伤害的计算再下放到子类里,每个层次仅实现本层次的功能,这样子可以实现低耦合
  3. adventurer中处理业务时统一使用prop,prop内置属性type,判断时候用AbstractBaseTypeEnum枚举类进行判断
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值