我想在多个类中使用一些函数,这样做的正确方法是什么?
我想创建一个类并将我的函数设置为静态...或者实现这个需要这些函数的类?
您怎么看?
由于
答案 0 :(得分:4)
如果此方法不使用任何对象的任何实例变量,它可以(并且可能应该)确实是静态的,这使得它可以从任何地方获得(只要它也是公共的)。
此类无状态全局可用方法的良好示例是java.lang.Math
类的方法。
答案 1 :(得分:3)
通常在静态实用程序类中实现独立于类实例的共享功能,这与Java实现java.utils.Collections
中所有集合通用的功能的方式相同。
如果功能取决于实例,则可以通过将实现放在基类(通常是抽象基类)中并在需要相关功能的两个类中继承它来共享功能。
最后,可以在包私有实用程序类中实现共享功能,将公共方法添加到调用该实现的包 - 私有实用程序类的两个类中。
答案 2 :(得分:1)
这取决于函数的行为。对于某些情况,将函数放入单独的类并使其静态就足够了。但是如果你需要修改它的行为,你应该考虑使它非静态,以便允许在后代类中覆盖它。
答案 3 :(得分:0)
这通常使用包含静态方法的实用程序类来实现:
class MyCompanyUtils
{
public static encloseInQuotes(String s)
{
/* code to wrap s in quotes */
}
public static removeTrailingSlash(String s)
{
/* code to remove trailing slash from a string */
}
}