代码之家  ›  专栏  ›  技术社区  ›  Nix

什么时候应该使用公共静态方法

  •  5
  • Nix  · 技术社区  · 14 年前

    有很多人反对使用“public/private”静态方法。我四处寻找,没有运气,并试图找到谁主张良好的静态方法的使用。

    假设这些方法始终是内聚的,那么在哪些地方可以使用公共静态方法呢?这些方法在Java和.NET之间是否有所不同(也就是说,一种方法比另一种方法更容易接受)?

    SO 这篇文章激起了我对这个话题的愤怒/兴趣。

    7 回复  |  直到 7 年前
        1
  •  4
  •   Michael Borgwardt    14 年前

    一种静态方法

    • 修改它的参数(因为如果修改了,为什么它不是该参数的实例方法?)

    相反地,纯函数(即没有副作用)有利于实现良好的静态方法。

    当然,这不应被视为绝对教条。

        2
  •  5
  •   kbrimington    14 年前

    如果可以将方法视为一个单元,并且可以自己进行有效的测试,则使用公共静态方法。很难在使用静态方法的类型上实现依赖注入或模拟。

    我将静态方法用于具有很少/没有依赖关系和定义良好的输入/输出的实用方法。

        3
  •  2
  •   Martin Harris    14 年前

    string.Empty;
    

    财产 然后:

    string.GenerateRandomString();
    

        4
  •  0
  •   Fenton    14 年前

    将方法标记为静态会告诉使用者您不会更改传递到该方法中的任何对象的状态。静态方法应该对所传递的参数执行操作,并且不应该依赖任何内部字段。

        5
  •  0
  •   Muad'Dib    14 年前

    一个典型的用法是实现单例模式。

        6
  •  0
  •   Community Mike Causer    7 年前

    我对不属于类实例的方法使用Static/Shared,或者如果我正在更新“Shared”变量(记住要使它们是线程安全的)。

    通常,这意味着我在包含这些方法的另一个“Manager”类中拥有这些方法,我还将构造函数标记为private,以确保它们无法实现。

    另一方面:静态/共享方法 slightly faster Discussed Here .

        7
  •  0
  •   troelskn    14 年前