Pebbles StringLoader 可以重复使用来加载不同的模板吗?

Can Pebbles StringLoader be reused to load different templates?

我们正在使用pebble 引擎,我知道PebbleEngine 实例可以重复使用来解析不同的模板。在我的例子中,我最初将引擎的加载程序设置为 StringLoader 实例,并重用相同的引擎来处理几个不同的模板。我担心的是 StringLoader 实例是否可以重用来加载不同的模板?或者每次我需要处理不同的模板时,我应该设置一个新的实例作为加载器吗?我尝试阅读 API 文档并进行了 google 搜索,但仍然找不到可靠的答案。

是的,StringLoader 是无状态的 class,可以毫无问题地反复使用。如果您查看那个 class 的 source code,您会发现它实际上做的很少。无需为每个模板创建一个新的 StringLoader。

此建议适用于任何装载机。他们的工作是根据名称找到一个模板,并立即 return 该模板的 "Reader" 对象;仅此而已。他们对之前找到的模板没有记忆,因此在这方面它们是无状态的,可以立即重新使用不同的模板。