之前接触到消息队列这个东西,只是跟着实现了,并没有细细玩弄其中的原理和技巧。今天抽个时间记录一下。
消息队列的实现方式很多,也因功能需求而有改变,这里所说的消息队列,是在处理完一条再处理下一条,不会同时处理。 最简单的跑马灯,消息一条条刷下来,消息的激活和终止,都可以由manager来控制处理,消息发布时间也是定死的。并非由消息‘自己’处理。很有规律性。
而最近接触的消息队列比较复杂。包括一个游戏中所有要处理要通知到玩家知道的信息,基本都有确认等操作,要做成队列的处理方式。那就要有要求对manage更智能一点。首先必需要设计到的baseMessageInterface应该包含的接口有excute(激活), finish(结束)。 而messageManager就需要根据队列的状态来决定是否弹出新的消息(发觉上一条消息finished后,推出新一条),使之调用excute了,而finish可以由manager操作调用也可以由message调用,较有灵活性。
这是一个什么样的设计模式?没搞清楚这个,有人给个答案吗?