对象作用域
将 DSL 脚本放置在这样的位置,以便裸引用能够解析为单个对象。
嵌套函数(在一定程度上)和 函数序列 可以提供一个不错的 DSL 语法,但它们的基本形式存在一个严重的问题:全局函数和(更糟糕的是)全局状态。
对象作用域通过将所有裸调用解析为单个对象来缓解这些问题,这避免了全局函数对全局命名空间的污染,允许您将任何解析数据存储在这个宿主对象中。最常见的做法是在定义函数的构建器的子类中编写 DSL 脚本——这允许将解析数据捕获到该单个对象中。
有关更多详细信息,请参阅 DSL 书籍 的第 36 章。