【观察者模式】1.一个模块变化通知其它模块 2.任务系统

1)一个模块变化通知其它模块

其实我不建议一个xxxHandler中既要处理普通的业务,又要处理Listener,这样子会看起来比较混乱。

而是EventManager.java中只处理

public class EventManager {

        public static onServerStartBegan(){

        }

        public static onRoleLevelUp(){

                RewardService.calReward();

                ActivityService.refreshActivityList();        

        }

}

这样子去做监听者模式,原因就是因为:一下子就看出来到底都哪里调用了,注解的方式的缺点就是,不容易看出来到底哪里监听了。

而handler不一样,一个消息号,只有一个处理的地方,因此是很清晰的。

我们写代码原则肯定是为了维护方便,写的代码根本不知道有哪些地方调用了,这是很混乱的,不是为了解耦而解耦,而是写代码前想想如何维护方便。

2)任务系统

例子:达到一定的条件后, 达到50级后开启一个任务,任务要求:要杀5个怪,则奖励一个东西。

一、首先设计层面:

有一个任务id,如: task_1001。

其次,这是一个事件类型,如Event_1001:杀x个怪,再根据策划配置x这个参数,决定这个事件是否完成。

二、其实在没有开启这个任务时,逻辑肯定是写好的,而且也fireEvent做了统计,但是却没有开启监听,因此,不会做统计。

三、后这个任务一旦开启,并完成后,就会永久记录在数据库中,这样子保证不会重复开启。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值