求助:如何生成一个持续的节点流(控制节点数量最大值)

我要做一个由上向下持续产生内容的小游戏。内容,可以理解为一首诗,一般一首诗是4行。生成滚动流时,会从内容库中随机拉出来一首诗、一首诗这样。

点击开始后,从最上边就开始产生一行内容,向下滚动,然后,紧接着出现第二行、第三行。。。 可无限的出。

但是,内存啊啥的一定要控制,所以,假设一屏幕最多放10行,那么应该如何控制比较好呢?

目前我封装了一个滚动内容模块(Flow),可开始、暂停滚动,对提供的内容进行向下滚动,提供触底回调通知,可判断内容是否已满(足够滚动到底,顶部不空)。
还有一个主游戏逻辑模块(Main),负责游戏开始,产生内容,开始滚动,暂停滚动等。

问题:由哪个模块控制产生新内容呢?
a)Main模块的话,需要定期循环去请求Flow是否内容已满
b)Flow模块的话,感觉它越权了,并不想让它了解游戏的逻辑(啥时候给内容,啥时候停止)

写到这儿,大概有一点儿思路了。。。
Main模块中创建一个Generator,设定一个计时器,定期检查Flow是否已满。如果未满,则从Generator中拿一行内容出来塞给Flow模块。

当然,有更好的方案,不吝赐教。

链表?