您当前的位置: 首页 > 

蓝不蓝编程

暂无认证

  • 0浏览

    0关注

    706博文

    0收益

  • 0浏览

    0点赞

    0打赏

    0留言

私信
关注
热门博文

自定义带计数器队列

蓝不蓝编程 发布时间:2019-12-12 17:36:42 ,浏览量:0

背景

产品需要在一个界面显示之前弹出两种不同类型的弹框,后期又希望每种弹框显示一定的次数后才不再出现.如先显示1次A弹框,再显示2次B弹框. 第1次进入X界面,出现A弹框; 第2次进入X界面,出现B弹框; 第3次进入X界面,出现B弹框;

分析

如果直接在X界面里写这些逻辑,会导致X界面代码复杂化,弹框和X界面耦合严重,需要采用一种设计方式,让代码隔离,并且便于后期扩展,如又增加一种弹框怎么办?

解决方案

自定义带计数器队列. 初始化后队列成员: A(1) B(2) 第1次进入X界面,出现A弹框,队列成员变成:B(2); 第2次进入X界面,出现B弹框,队列成员变成:B(1); 第3次进入X界面,出现B弹框,队列清空.

主要代码
import java.util.LinkedList

class CountQueue {
    private val queue = LinkedList()

    fun add(item: T, count: Int) {
        if (count > 0) {
            queue.add(CountQueueItem(item, count))
        }
    }

    fun next(): T? {
        val countQueueItem = queue.peek()
        return if (countQueueItem != null) {
            if (countQueueItem.count             
关注
打赏
1639405877
查看更多评论
0.0394s