首页 | 互联网 | IT动态 | IT培训 | Cisco | Windows | Linux | Java | .Net | Oracle | 软件测试 | C/C++ | 嵌入式开发 | 存储世界 | 服务器
网络设备 | IDC | 安全 | 求职招聘 | 数字网校 | 网页设计 | 平面设计 | 技术专题 | 电子书下载 | 教学视频 | 源码下载 | 搜索 | 博客 | 论坛
中国IT实验室Linux频道
中国IT教育
Google
首页 资讯动态 认证考试 新手入门 核心技术 高级技术 J2EE J2ME Java&XML 开源技术 其他技术 RSS订阅 论坛 专题
您现在的位置: 中国IT实验室 >> Java >> 新手入门 >> 基础入门 >> 正文

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

对代码建档

在组织代码一章节中提到,对方法返回this的连贯接口建档比对返回中间对象的连贯接口建档来的简单的多,尤其是在使用Javadoc来建档的情况下。

Javadoc每次显示一个类的文档,这对于使用中间对象的DSL来说可能不是最好的方式:因为这样的DSL包含一组类,而不是单个的类。由于我们不能改变Javadoc显示我们的API文档的方式,我们发现在package.html文件中,加入一个使用连贯接口(包含所有相关类)、且对链中每个方法提供链接的例子,可以将Javadoc的限制的影响降到最低。

我们需要注意不要创建重复文档,因为那样会增加API创建者的维护代价。最好的方法是尽可能依赖于像可执行文档那样的测试。

结论

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

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

使用Java创建DSL有很多种不同的方式,这取决于我们试图达到的目的是什么。尽管没有什么通用的方法,我们还是发现结合方法链接和静态工厂方法与imports的方式可以得到干净、简洁、易读易写的API。
总而言之,在使用Java来创建DSL的时候有利有弊。这都由我们——开发人员根据项目需求去决定它是否是正确的选择。

另外一点题外话,Java 7可能会包含帮助我们创建不那么冗长的DSL的新语言特性(比如闭包)。如果想得到更多关于建议中所提特性的全面的列表,请访问Alex Miller的blog。

关于作者Alex Ruiz是Oracle开发工具组织中的一名软件工程师。Alex喜欢阅读任何关于Java、测试、OOP 和AOP的信息,他最大的爱好就是编程。在加入Oracle之前,Alex曾是ThoughtWorks的咨询顾问。Alex的blog为 http://www.jroller.com/page/alexRuiz

Jeff Bay是纽约一家对冲基金的高级软件工程师。他曾多次建立高质量、迅速的XP团队工作于例如Onstar的计划注册系统、租赁软件、web服务器、建筑项目管理等各种系统。他对于消除重复和防止bug方面怀有极大的热情,以提高开发者的工作效率和减少在各种任务上所花费的时间。

上一页  [1] [2] [3] [4] [5] [6] 

【责编:Zenghui】

中国IT教育

相关产品和培训
文章评论
 友情推荐链接
 认证培训
 专题推荐

 ·关于Java框架技术专题
 ·XML全攻略技术专题
 ·JAVA开源技术介绍专题
 ·Java嵌入式开发之J2ME技术专题
 ·超前体验 Oracle 11g的5个新特性…
 ·揭密使用VB.NET的五个实用技巧
 ·Oracle和SQL Server常用函数对比专题…
 ·展现C#世界 C#程序设计专题…
 ·Java入门 Tomcat的配置技巧精华专题…
 ·Oracle RMAN物理备份技术详解…
 今日更新
 社区讨论
 博客论点
 频道精选
 Java 频道导航