领域特定语言模式结构_领域特定语言模式结构试读-查字典图书网
查字典图书网
当前位置: 查字典 > 图书网 > 编程 > 领域特定语言 > 模式结构

领域特定语言——模式结构

大多数作者在写模式的时候都用了一些标准模板。我也不例外,既用了一个标准模板,又与别人用的不一样。我所用的模板,或称模式形态,是我第一次用在企业应用架构模式(P of EAA,[Fowler PoEAA])中的模式。它的形式如下。 模板中最重要的元素大概要数名字。我喜欢用模式来描述各个引用主题,最大的原因就是它可以帮我创建一个强大的词汇表,方便展开讨论。虽然这个词汇表不一定能得到广泛应用,但至少可以让我的写作保持一致性,也可以在别人想要用这个模式的时候,给他提供一个起始点。 接下来的两个元素是意图和概要。它们对模式进行简要的概括。它们还能起到提醒作用,如果你已“将模式纳入囊中”,但忘了名字,它们可以轻轻拨动你的记忆。意图用一句话总结模式,而概要是模式的一种可视化表示─有时候是一张草图,有时候是代码示例,不管是什么形式,只要能够快速解释模式的本质就好。我有时候使用图表,有时候会用UML画 图,不过要是有其他方式可以更容易表达意图,我也是很乐意用的。 接下来就是稍长一些的摘要了。我一般会在这一部分给出一个例子,用来说明模式的用途。摘要由几段话组成,同样是为了让读者在深入细节之前先了解模式全貌。 模式有两个主体部分: 工作原理和使用场景。这两部分没有固定顺序,如果你想了解是否该用某个模式,可能就只想读“使用场景”这一节。不过,一般来说,不了解工作原理的话,只看“使用场景”是没什么作用的。 最后一部分是例子。我尽力在“工作原理”这一节把模式的工作原理讲清楚,但人们一般还是需要通过代码来理解。然而,代码示例是有危险的,它们演示的只是模式的一种应用场景,可有些人却会以为模式就是这个用法,没有理解背后的概念。你可以把一种模式用上千百遍,每次稍稍有些差异,可我没有地方容纳那么多代码,所以请记住,模式的含义远远不止从特定示例中看到的那么多。 所有的例子都设计得非常简单,只关注要讨论的模式本身。我用的例子都是相互独立的,因为我的目标是每一个引用章节都独立成篇。一般来说,在实际应用模式的时候还需要处理其他大量问题,但在一个简单的例子中,起码可以让你有机会理解问题的核心。丰富的例子更贴近现实,可它们也会引入大量与当前模式无关的问题。于是我只会展示一些片段,你需要自己把它们组装起来,满足特定的需求。 这同时也意味着我在代码中主要追求的是可读性。我没有考虑性能、错误处理等因素,它们只会把你的注意力从模式的核心转移到别处。 也基于这个原因,我力图避免写一些我觉得很难借鉴的代码,即便是更符合该语言的惯例也不予考虑。这个折衷在内部DSL上会显得有些笨拙,因为内部DSL经常要靠语言的小窍门来强化语言的连贯性。 很多模式都缺少上面讲的一两个部分,因为确实没什么可写的。有些模式没有例子,因为最合适的例子在其他模式里面用到了─在发生这种情况的时候,我会把它指出来。

展开全文

推荐文章

猜你喜欢

附近的人在看

推荐阅读

拓展阅读

《领域特定语言》其他试读目录

• 写书初衷
• 为什么现在写这本书
• 为什么DSL很重要
• 别畏惧这本大厚书
• 本书主要内容
• 本书读者对象
• 这是本Java书或者C#书吗
• 本书缺少什么
• 章节引用
• 模式结构 [当前]
• 致谢