• 资源道具化


    概念

    概念:系统中的每一个资源分配一个唯一标识。

    举例:金币、钻石、道具、礼包、勋章、英雄、英雄碎片、活动积分、表情等。

    中间层:处理资源增减请求。


    举例

    签到为例

    yes
    签到请求
    是否可签
    读取奖励配置
    直接获得奖励
    结束
    提出资源增加请求

    红色要优于橙色。

    红线逻辑,签到模块不关心奖励是怎么加上去的。

    中间层处理资源

    增加
    没有该英雄
    有该英雄 不允许分解
    有该英雄 允许分解
    资源增减请求
    增加or减少
    不同的类型
    加金币
    加英雄碎片
    调用背包模块
    加英雄
    调用英雄模块
    读取碎片数 发起加碎片请求

    中间层实现了增减资源的操作。

    两张表

    资源表

    id type desc ext...
    资源ID唯一标识 不同的类型 描述 一些扩展字段

    签到表

    day id count
    第几天 资源ID 数量

    需求扩展

    需求:签到给英雄,如果玩家已经拥有该英雄,则改为给3个英雄碎片。

    实现:兑换表:英雄、英雄碎片、兑换个数。把自动拆为碎片的逻辑放入中间层,签到模块不用关心。

    需求:如果玩家获得A道具100次,获得S勋章。获得3次S勋章,达成Y成就。

    实现:勋章表:道具、收集次数。成就表:勋章、收集次数。

    增加道具时,对应计数+1。判断是否触发勋章获得的条件,如果达成,增加对应的勋章。

    增加勋章时,对应计数+1。判断是否触发成就获得的条件,如果达成,增加对应的成就。

    道具、勋章、成就,都资源化,无差别对待。根据资源表中的type,做不同逻辑。

    不同的模块,可以复用这套逻辑。

    需求:签到给积分,积分可以兑换英雄碎片。

    实现:积分作为一种资源,分配一个ID,对接兑换模块。

    兑换模块,先发起减请求,再发起加请求。


    总结

    • 资源道具化,统一性。
    • 中间层,对外界屏蔽不同资源的差异。
    • 子模块不直接交互,通过中间层间接交互。
  • 相关阅读:
    C#有关里氏替换原则的经典问题答疑
    Glide加载图片占位图问题,CustomViewTarget加载图片占位图问题
    计算机基础(一):面向CPU编程
    git代码回退方法简要总结
    SignalTap II 软件使用步骤
    PYTHON-使用正则表达式进行模式匹配
    艾美捷支原体检测试剂盒说明书
    java.io.IOException: Unable to establish loopback connection
    Android 打开系统应用
    云计算与大数据- 云计算概览练习题及答案
  • 原文地址:https://www.cnblogs.com/txtp/p/16448442.html