1
1
我将这些实用程序类视为我开发的软件外部的其他组件:
编写实用程序类有很多静态方法。这是我不常用的东西。例如,可以将显示的文本函数重构为一个类或一组类,这些类或一组类从集合框架扩展或实现类和接口。这使得我的代码更容易与其他库集成。 |
2
1
对于我的项目,我使用
我也是这样做的。但是我尝试用很多小的UTIL类来代替一些大的类,这样我就不必在jar中包含大量不需要的方法。 |
3
1
我的“实用程序”有自己的包名称空间和SVN存储库。 它们本质上是 我的 自己的库:可以拉入、共享、标记、更新的不同项目。 这些“库”中使用的组织取决于所讨论的范围和功能。 因为我不同意作为某个潜在类/JAR输出的从属结构: 如果您担心类和/或JAR中的“方法膨胀”,请使用自动化工具来解决这个问题。 ProGuards is just one example 而且,虽然它可以使人困惑,但在“死代码消除”方面也同样有效。 |
4
1
将utils模块拆分为较小的子项目。使用maven或其他构建系统跟踪所有util模块的版本。它们对您的系统至关重要,因为我认为它们在您的几乎所有项目中都使用。使用类似的工具 Findbugs 或 PMD 以确保代码的质量。 每个项目都需要知道使用哪个版本的utils模块。在我看来,向您的一个“nonutils”项目的二进制文件/源中添加一些松散耦合的util类是不可接受的。 请用其他公共项目修改你的类,比如 Apache Commons . 我认为你的很多实用程序代码是相似的。最好考虑一下重写你的 static metods 因为它们妨碍了测试(我相信findbugs也会抱怨很多)。 综上所述,创建一个实用程序库是一件很难的事情,而且要负很大的责任。所以在代码质量方面要求很高。我希望我的建议会有所帮助。 |
5
1
在编译之后,您应该非常小心地删除类——您可能会在运行时遇到未找到类的情况。如果您从不使用反射或class.forname(),那么应该是安全的,但是它们引入了编译器无法帮助您的运行时依赖项(就像“new”一样)。 记住-那些没有使用的类在运行的程序中不使用内存,只使用磁盘上的字节。 就我个人而言,我最终说磁盘空间很便宜,意外删除导致运行时中断的类定义的风险对我来说是不值得的,所以我说-所有用于编译的代码都必须被发送。 |
6
0
我不使用Eclipse,但是在Visual Studio中,您可以添加对文件的引用,而不需要物理移动或复制它。这允许您在源代码管理的根目录中定义一个文件,所有项目都可以引用该文件,而不必包含在每个项目中,也不必处理复制问题。使用这种解决方案,您可以智能地将UTIL方法拆分为不同的文件,并根据单个项目的需要选择性地包含这些方法。你也可以去掉多余的罐子。 也就是说,我不知道Eclipse是否支持这种文件引用,但它可能值得一看。 |
Ziv · 避免依赖性使我的VS解决方案中的项目数量激增 8 年前 |
Vico · 具有laravel和几个git存储库的代码组织 9 年前 |
David Rodrigues · 组织目录中的命名空间和类 9 年前 |