Methods 静态方法使用
如果我有一个静态方法,唯一的优点是我们只有一个副本。不需要有一个对象来调用该方法。创建一个对象也可以做到这一点,即我们可以用对象调用方法。为什么我们要用静态方法。有人能提供一个例子来解释吗?当您有私有构造函数时,静态方法会很有用,因为您希望抽象实例化过程 例如,在C++中:Methods 静态方法使用,methods,static,Methods,Static,如果我有一个静态方法,唯一的优点是我们只有一个副本。不需要有一个对象来调用该方法。创建一个对象也可以做到这一点,即我们可以用对象调用方法。为什么我们要用静态方法。有人能提供一个例子来解释吗?当您有私有构造函数时,静态方法会很有用,因为您希望抽象实例化过程 例如,在C++中: class Foo { Foo() {} public: static Foo *create() { return new Foo; } }; 在该示例中,抽象只是调用了一个可访问的构造函数,但实际上
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
}
};
当开发人员确实确定该方法在类中只有一个实例时,使用静态方法。没有其他实例可以改变这一点。 例如: 因此,即使您是对象人的实例,getvalue静态方法的返回也只会产生x+3。 它通常用于当你真的确定要做一个函数方法,比如数学或物理方法。 您可以参考使用静态观点的函数式编程 一些老派的人过度使用静态方法而不是OOP方法 例如: 上面的实现可以是数千行 这种风格随处可见,使其像OOP风格(因为它发生在类中),但像过程方法一样思考。 这是一个帮助,因为不是所有人都理解OOP风格,而不是喜欢OOP风格 使用static的另一个优点是节省内存占用,而且速度更快。 您可以在博客中看到:
public class People
{
private
public static Int32 GetValue(Int x)
{
return x + 3;
}
}
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 ... }
}