在我目前的团队中,似乎有一些关于重构以利用java泛型的争论。我的问题是,在重构旧的Java代码以利用其中一些功能方面,当前的行业标准是什么?当然,根据行业标准,我指的是最佳实践。一个链接到一本书或一个网站列出了这些将被授予答案投票,因为这是最不主观的方式来处理这个问题。
发布于 2010-02-27 08:59:00
麻省理工学院这个研究小组的论文可能会为你提供一些有用的指导:
Robert Fuhrer,Frank Tip,Julian Dolby,Adam Kiezun和Markus Keller
ECOOP 2005 -面向对象编程,第19届欧洲会议,(苏格兰格拉斯哥),7月25-29日,2005.
Frank Tip,Robert Fuhrer,Julian Dolby和Adam Kiezun
IBM T.J. Watson Research Center IBM Research Report RC 23238,(约克敦高地,纽约,美国),6月2日,2004.
发布于 2010-02-27 08:59:06
我不认为盲目地遵循别人宣称的“最佳实践”或“行业标准”是一个好主意。您处于决定是否值得更改代码的最佳位置。
你需要回答的问题是,升级旧代码会带来什么好处,成本是什么,风险是什么?
主要好处是您将改进编译时类型检查,这应该有助于检测使用更新的代码的新代码中的bug。它甚至可以突出显示现有代码中的错误。使用泛型的代码虽然有时相当冗长,但通常更具可读性,因为它清楚地说明了哪些类型在哪些上下文中是有效的。您也不再需要抑制/忽略编译器警告。
成本是进行和测试引入泛型所需的更改所需的时间。任何时候进行代码更改都有可能引入bug,因此这是一种风险。收益是否大于成本?这取决于你有多少代码,如何使用它,以及你对时间的其他要求。
发布于 2010-02-27 08:48:31
利用java泛型绝对是个好主意。它是向后兼容的。因此,您无法转换的代码库将继续与新代码一起工作。
编辑:我应该提到type erasure是使其向后兼容的原因。
https://stackoverflow.com/questions/2345760
复制相似问题