静态方法使用

时间:2011-10-09 07:41:49

标签: methods static

如果我有一个静态方法唯一的好处就是我们有一个copy.Need没有一个对象来调用Method。创建一个对象也可以这样做,即我们可以用对象调用方法。我们为什么要有静态方法。有人可以提供一个例子来解释吗?

2 个答案:

答案 0 :(得分:0)

当您拥有私有构造函数时,静态方法很有用,因为您想要抽象实例化过程。

例如在C ++中:

class Foo {
  Foo() {}
public:
  static Foo *create() {
    return new Foo;
  }
};

在该示例中,抽象只是在可访问的构造函数中调用,但在实践中,您可能希望拥有一个共享的对象池,因此create()方法将为您管理此事。


有时当你有const成员需要在构造时被初始化时,将逻辑移动到private静态方法可能更清晰,例如:

struct Foo;

struct Bar {
  Bar() : f(make()) {
  }

private:
  const Foo f;

  static Foo make() {
    // Create it here
  }
};

答案 1 :(得分:0)

当开发人员确信该方法在类中只有一个实例时,使用静态方法。没有其他实例可以改变它。 例如:

  public class People
  {
      private
      public static Int32 GetValue(Int x)
      {
          return x + 3;
      }
  }

所以即使你是对象人的实例,getvalue静态方法的返回只产生x + 3。 它通常在您确实使用数学或物理方法等功能方法时使用。 您可以参考使用静态视点的函数式编程。

一些老派的家伙过度使用静态方法而不是做OOP方法。

例如:

public class People
{
    public static DataSet GetPeopleById(String personId)
    {  .... implementation that using SQL query or stored procedure and return dataset ... }

    public static DataSet GetXXXXXXX(String name, DateTime datex)
    { .... implementation ... }
}

上面的实现可以是数千行

这种风格到处发生,使它像OOP风格(因为它发生在课堂上)但是像程序方法一样思考。 这是一个帮助,因为并非所有人都了解OOP风格而不是OOP风格。

使用静态的另一个好处是可以节省内存占用空间并加快速度。 您可以在博客中看到:http://www.dotnetperls.com/callvirt