在多个类中使用相同的功能

时间:2012-05-04 17:53:10

标签: java function

我想在多个类中使用一些函数,这样做的正确方法是什么?

我想创建一个类并将我的函数设置为静态...或者实现这个需要这些函数的类?

您怎么看?

由于

4 个答案:

答案 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 */
    }
}