多次调用Function的更好方法

时间:2015-09-30 08:37:47

标签: java c# function class static

在OOP如C#和Java中如果我要创建一个类来进行所有字符串操作,我知道最好使所有函数都是静态的。但是当我需要多次调用这些函数时,哪一个是更好的选择(在使用更少资源的情况下):

  1. 仅创建一次对象并使用该对象调用该函数。

    absolutelayout
    1. 每次直接致电课程

      StringManipulation sm = new StringManipulation(); 
      sm.reverse("something");
      sm.addPadding("something");
      sm.addPeriod("something");
      

3 个答案:

答案 0 :(得分:1)

我相信这会很有效率

StringManipulation sm = new StringManipulation(); 
sm.reverse("something").addPadding("something").addPeriod("something");

创建一个能让它工作的实例。

答案 1 :(得分:1)

如果需要进行初始化,则应创建一个对象,例如从数据源获取值或参数。

静态是你的例子中的方式,因为它们是原子函数,无论上下文如何都会返回相同的结果(无状态)

然而,在C#中(我不知道在java中),有一种更好的方法:扩展方法。基本上,你将向字符串对象添加方法,允许直接在字符串对象上调用它们,如果你的返回对象也是一个字符串,如果你需要链接它们:

public static string reverse(this string str)
{
    // Code to reverse your string
    return result;
}

.........

"something".reverse().addPadding()

了解更多信息:https://msdn.microsoft.com/en-us/library/bb383977.aspx

答案 2 :(得分:1)

给出两个选项的性能差异可以忽略不计。但主要的区别在于方法的使用。

如果您需要一个方法来执行与类对象无关的任何常规任务,那么您将在设计中考虑静态方法。对于依赖于对象的任务,您应该考虑实例方法。