假设我需要为博客站点添加生成 RSS/Atom 提要。我正在考虑“Feed Monad Interpreter”模式。也就是说,我将定义一个带有原语的 DSLBlog
和BlogPost
a Free monad
,它只是这些原语的树,以及将Free monad
树转换为 XML 的 RSS/Atom “interpeters”。
是否有意义 ?
假设我需要为博客站点添加生成 RSS/Atom 提要。我正在考虑“Feed Monad Interpreter”模式。也就是说,我将定义一个带有原语的 DSLBlog
和BlogPost
a Free monad
,它只是这些原语的树,以及将Free monad
树转换为 XML 的 RSS/Atom “interpeters”。
是否有意义 ?
不是真的,因为 XML 不是一种解释;它是一种数据结构,它具有指称而不仅仅是操作语义[1]。因此,您可以定义您的原语,并拥有它们的树,并将该纯树转换为...另一个表示 XML 的纯树。不需要monad,这可以只是一个纯粹的数据转换。
[1] 假设我正确理解了这些术语
通常,我建议只使用模板系统和输出 (XML) 字符串,而不是创建和转换 XML 文档,这在此用例中可能会非常昂贵且收益甚微。
确保您有一个测试套件来解析生成的 XML 字符串,以确认它是有效的并且不会破坏人们消费提要的内容,但除此之外,模板应该更好地工作!