——此文章摘自《自己动手写开发工具
基于Eclipse的工具开发》定价
¥
特价
¥
详细>>http://track
linktech
cn/?m_id=dangdang&a_id=A
&l=
&l_type
=
width=
height=
border=
nosave>
计算机的专家们一直在探寻一种能使得重复代码越来越少的方法函数封装面向对象AOPMDAORM……所有这些相关或者无关的技术都在试图将重复的代码消灭可是一路走过来人们突然发现重复的代码是不可能被完全消灭的到了更高的层次一定会有更高级的重复的代码需要我们去对付因此代码生成也逐渐不再被妖魔化网页编辑器编译器IDE等这些非常重要的工具不就是代码生成器吗?只要是系统经过好的设计对于剩下的一些重复性的代码与其使用学院派且严重影响性能的方法进行消除不如使用代码生成器来完成来得更实在一些
回到现实中来在我们开发程序的过程中特别是开发一些业务系统的过程中一些重复的代码总是不可避免的比如ORM中POJO代码和配置文件资料录入界面的代码数据库DDL语句等这些工作如果要开发人员去手动完成话不仅会降低开发效率而且会带来很多bug最重要的是极容易使得开发人员产生厌倦心理从而消极怠工甚至离职从而提高了项目的人力资源成本增大了项目的风险因此在大一些的开发团队中都在使用着各种或公开或自酿的代码生成工具而且越来越多的人开始选择自酿工具这是因为使用第三方的代码生成工具往往不能满足自己的个性化需求
我们可以通过多种方式来写代码生成工具比如最简单的通过StringBuffer拼字符串或者借助groovy templatevelocity等工具来完成这些工具各有千秋不过由于本书是讲解Eclipse的因此我们就来看一下在Eclipse中有哪些代码生成方案
使用StringBuffer拼接来生成代码
在一些比较简单的代码生成中这样的方式是比较方便的但是当生成的代码结构变得越来越复杂的时候代码中stringbufferappend()与逻辑判断代码搅和在一起程序变得非常难以维护
使用JDT API中的AST
JDT会把 Java代码编译成AST(Abstract Syntax Tree 抽象语法树)这样复杂的Java代码就变成了相对简单的树状结构我们就可以通过AST来遍历Java代码从而解析代码或者对代码进行修改 Eclipse中的Java代码重构就是基于AST来进行的
在Eclipse 中AST被称为CompilationUnit对应的接口就是ICompilationUnit通过Java代码来生成 CompilationUnit最简单的方法是使用 IPackageFragmentcreateCompilationUnit指定编译单元的名称和内容于是在包中创建了编译单元并返回新的 ICompilationUnit我们还可以从头创建一个CompilationUnit即生成一个不依赖于Java代码的 CompilationUnit然后在这个CompilationUnit上添加类添加方法添加代码然后调用JDT的AST解析器将 CompilationUnit输出成Java代码这种方式是最严谨的方式但是当要生成的代码比较复杂的时候程序就变得臃肿无比而且只能生成 Java代码不能生成XML配置文件等文件
使用JET
JET是 Eclipse中一个非常强大的代码生成工具使用JET你可以运用类似JSP一样的语法这样我们就可以轻松地编写代码模板用它可以创建SQL语句 XMLJava源代码等文件的代码生成器本书将把它作为代码生成的工具因此我们在此处重点讲解JET的使用JET是EMF的一部分要使用它必须首先安装EMF插件
使用JET分为如下几步
right>[] [http://developcsaicn/Java_Eclipse/htm>] [http://developcsaicn/Java_Eclipse/htm>] [http://developcsaicn/Java_Eclipse/htm>] [http://developcsaicn/Java_Eclipse/htm>] [http://developcsaicn/Java_Eclipse/htm>]