是否使用静态方法?

时间:2012-05-08 05:01:58

标签: java design-patterns

您好我在java中有一个Web服务,其中我有一个类,它有不同的方法来修改客户端发送的字符串,并根据他想要的刺痛类型将其返回。因此,根据字符串类型要求,调用一个方法..

class Test{

public static String a(String z)
{
 // do stuff and return;
}


public static String b(String z)
{
 // do stuff and return;
}
}

所以如果一个类似10000个请求的数组来了,这些方法被调用10000次,我想知道这些方法应该被视为静态还是非(我应该在我的主Web服务类中创建这个类的全局对象)并称这些方法)?

5 个答案:

答案 0 :(得分:2)

我认为您不需要将方法设置为静态,如果您可以访问对象中的方法,那么您应该(尽可能避免静态)。这样可以提高代码性能(就内存利用率而言)。< / p>

答案 1 :(得分:2)

这些方法是静态的,有什么令人信服的理由?如果您需要静态方法,那么创建它们。否则,从设计的角度来看,坚持使用非静态方法。你不能覆盖静态方法(虽然你可以隐藏它们。)

就是这样:

In Java, is there any disadvantage to static methods on a class?

答案 2 :(得分:1)

如果方法对所有情况都相同,则可以使用静态方法。如果方法只是对作为参数提供的字符串进行了一些处理,并且所有实例的行为都相同,那么就可以。

同样,你也可以用它制作一个单身人士。通过UNIQUE_INSTANCE调用方法。

类似的东西:

public class Test {

    private static final Test UNIQUE_INSTANCE = new Test();

    private Test() {
    }

    public static final Test getUniqueInstance() {

        return UNIQUE_INSTANCE;
    }

    public final String a(String z) {

        // do stuff and return;
    }


    public final String b(String z) {

        // do stuff and return;
    }
}

然后你可以做&gt;&gt;

Test.getUniqueInstance().a("Hello");
Test.getUniqueInstance().b("World");

答案 3 :(得分:0)

如果没有任何资源在线程之间共享,那么使用任何静态方法都没有坏处。

答案 4 :(得分:0)

是的,应该有一个静态修饰符,因为不同的方法或函数之间没有交互,结果以相同的方法返回。 “静态”一词是定义一个类变量或方法,可以在不实例化这种类的对象的情况下访问它。

如果你不打算实例化类,只需要使用里面的方法,“静态”是正确的方法,并将类构造函数设置为私有。

相关问题