欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

简化Java代码

程序员文章站 2022-05-01 09:16:57
...
样板代码Boilerplate Code的定义:https://en.wikipedia.org/wiki/Boilerplate_code

任何开发语言都存在样板代码的问题,相比之下Java语言的样板化更高。比如可能用10行代码其他语言就能实现的功能,用Java实现需要100行以上。可以Google一下“Reduce Boilerplate Code in xxxx”。

Java语言自身也比较保守,比如没有Python和Ruby的Meta-Programming能力。

JavaIDE都能定义模板后生成代码,也可以借助一些工具来自动化生成一些样板代码。但是问题在于生成的代码依然存在于工程中,需要维护。

这里说的样板不是指 HTML5 BoilerplateSpringSide 这些示例工程,而是项目代码中具体编写的代码。

模板Template:只包含布局或样式
骨架Skeleton:
样板Boilerplate:还包含具体的文字图形等数据

1)语言新特性
比如:Java7的try-with-resources、Java8的Lambda/Stream等。

那些丑陋的Java API http://rensanning.iteye.com/blog/1843545
20年Java发展历程(1995-2015) http://rensanning.iteye.com/blog/2195622

2)Project Lombok
为了封装类的成员变量,JavaBean规范需要为类定义getter和setter方法。但很少有人在这两个方法中写一些有意义的代码,但这两个方法还不可少,因为依据规范大量的框架还需要通过这两个方法来操作成员变量,这样就会在工程里发现大量的无意义的getter/setter方法。

Lombok基于注解Hack编译过程(javac/AnnotationProcessor、Eclipse/JavaAgent)来自动生成代码。

Java简化臃肿代码之Lombok http://rensanning.iteye.com/blog/1930853

同样针对Android开发也有类似的工具:AndroidAnnotations

3)封装 Encapsulate
OOP三个基本特征:封装、继承、多态中的封装就是为了共用代码。编写共通组件也是开发中相当重要的一部分。

4)反射 Reflection
大部分开源框架都通过反射来调用工程里的代码。

5)重构 Refactoring
Rename、Extract Method、Pull Up/Push Down

6)开源框架 Frameworks
Google GuavaApache Commons等。

7)依赖注入DI

8)其他
Spring MVC的注解式配置

参考:
https://www.infoq.com/articles/Concise-Java