BT

如何利用碎片时间提升技术认知与能力? 点击获取答案

文章:使用Java实现内部领域特定语言

| 作者 Ryan Slobojan 关注 0 他的粉丝 ,译者 沙晓兰 关注 0 他的粉丝 发布于 2008年3月13日. 估计阅读时间: 1 分钟 | QCon上海2018 关注大数据平台技术选型、搭建、系统迁移和优化的经验。

在这篇文章中, Alex RuizJeff Bay描述了Java适合作为DSL的创建语言,深入挖掘了如何使用Java来创建内部DSL,讲解了一个基于Java的内部DSL的范例,并对采用Java编写DSL提出了一些建议。

摘自文章小结:

Java适用于创建开发人员易读易写的、并且对于商业用户用样易读的内部领域特定语言。用Java创建的DSL可能比那些由动态语言创建的DSL来的冗长。但好的一面是,通过使用Java,我们可以利用编译器来增强DSL的语义。另外,我们依赖于成熟且强大的Java集成开发环境,从而使DSL的创建、使用和维护更加简单。

使用Java创建DSL需要API设计者做更多的工作,有更多的代码和文档需要创建和维护。但是,付出总有回报。使用我们API的用户在他们的代码库中会看到更多的优化。他们的代码将会更加简洁,更易于维护,这些将使得他们的生活更加轻松。

使用Java创建DSL有很多种不同的方式,这取决于我们试图达到的目的是什么。尽管没有什么通用的方法,我们还是发现结合方法链接和静态工厂方法与imports的方式可以得到干净、简洁、易读易写的API。

阅读全文:使用Java实现内部领域特定语言

阅读原文:Article: An Approach to Internal Domain-Specific Languages in Java

评价本文

专业度
风格

您好,朋友!

您需要 注册一个InfoQ账号 或者 才能进行评论。在您完成注册后还需要进行一些设置。

获得来自InfoQ的更多体验。

告诉我们您的想法

允许的HTML标签: a,b,br,blockquote,i,li,pre,u,ul,p

当有人回复此评论时请E-mail通知我

这不正是interpreter模式? by zane dennis

java写dsl显然更冗长

Re: 这不正是interpreter模式? by blogbin avatar

强类型的静态语言不适合DSL,如果Java规范没有特别调整,我觉得没有必要在java上花费太多的时间。

Re: 这不正是interpreter模式? by Ding Liang

呵呵,确实很冗长,汗了- -

允许的HTML标签: a,b,br,blockquote,i,li,pre,u,ul,p

当有人回复此评论时请E-mail通知我

允许的HTML标签: a,b,br,blockquote,i,li,pre,u,ul,p

当有人回复此评论时请E-mail通知我

3 讨论

登陆InfoQ,与你最关心的话题互动。


找回密码....

Follow

关注你最喜爱的话题和作者

快速浏览网站内你所感兴趣话题的精选内容。

Like

内容自由定制

选择想要阅读的主题和喜爱的作者定制自己的新闻源。

Notifications

获取更新

设置通知机制以获取内容更新对您而言是否重要

BT