问题标签 [static-methods]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
1928 浏览

php - 重构以消除静态方法代码异味

对于需要创建的每个域对象,我都有当前的基本结构:

我最初尝试将静态方法重构为父 LP_Model 类,只是为了最终了解“后期静态绑定”在 php 世界中的含义。

我只是想知道是否有人对如何重构此代码有建议,这样我就不必在我创建的每个域对象中重新声明相同的三个函数?

0 投票
11 回答
22075 浏览

c# - 我怎么知道这个 C# 方法是否是线程安全的?

我正在为 ASP.NET 缓存项删除事件创建回调函数。

文档说我应该调用一个对象上的方法或我知道将存在的调用(将在范围内),例如静态方法,但它说我需要确保静态是线程安全的。

第 1 部分:我可以做哪些事情来使其成为非线程安全的?

第 2 部分:这是否意味着如果我有

我打电话给 Class.addOne(5); 和 Class.addOne(6);同时,根据哪个调用首先设置 foo,我可能会返回 6 或 7 吗?(即竞争条件)

0 投票
3 回答
441 浏览

c# - 如何在 C# 中设置对象创建接口“规则”?

一般规则是我想说,“T 有一个带有 String 参数的方法,它将返回 List。” 详细地说,我们可以调用接口 ICanCreateListOfObjectsFromString。一个可能的应用可能是搜索。

感觉在我的界面中有一个静态方法会很好,但我知道这在 C# 中是不允许的。在类上指定这种合同实现的另一种方法是什么?

编辑:我想要以下代码:

您可能会看到为什么这段代码无法编译,但它表达了我想要实现的精神。我希望这能澄清我的意图。

0 投票
7 回答
6655 浏览

python - 使用 Python 类有什么好处吗?

我有一个充满静态方法的 Python 类。将这些封装在一个类而不是原始函数中的优点和缺点是什么?

0 投票
3 回答
3457 浏览

.net-3.5 - .Net 静态方法及其对并发的影响?

我目前正在构建一个将由 Web 服务使用的 API。

我想知道如果我使用大量静态方法构建我的 API 会遇到哪些性能问题。

最初的想法是构建充当服务的专家对象。

在单一用户环境中,这种方法很棒!但我很快需要将其移植到多/并发用户环境。

这种架构可能会遇到什么样的性能问题?

最好的祝福,

编辑:

静态方法不包含静态变量并且没有副作用。他们只是执行一个正常的例程,一切都被实例化。(即变量和对象)

0 投票
24 回答
390607 浏览

java - 为什么我不能在 Java 接口中定义静态方法?

编辑: 从 Java 8 开始,接口中现在允许使用静态方法。

这是示例:

这当然行不通。但为什么不呢?

可能的问题之一是,当你打电话时会发生什么:

在这种情况下,我认为它应该只调用一个空方法(即{})。所有子类都将被迫实现静态方法,因此在调用静态方法时它们都可以。那么为什么这不可能呢?

编辑:我想我正在寻找比“因为 Java 就是这样”更深的答案。

静态方法不能被覆盖是否有特定的技术原因?也就是说,为什么 Java 的设计者决定让实例方法可覆盖而不是静态方法?

编辑:我的设计问题是我正在尝试使用接口来强制执行编码约定。

也就是说,接口的目标是双重的:

  1. 我希望 IXMLizable 接口允许我将实现它的类转换为 XML 元素(使用多态,工作正常)。

  2. 如果有人想创建一个实现 IXMLizable 接口的类的新实例,他们总是知道会有一个 newInstanceFromXML(Element e) 静态构造函数。

除了在界面中添加评论之外,还有其他方法可以确保这一点吗?

0 投票
21 回答
88284 浏览

java - 如果私有帮助方法可以是静态的,那么它们是否应该是静态的

假设我有一个设计为实例化的类。我在类中有几个私有的“帮助器”方法,它们不需要访问任何类成员,并且只对它们的参数进行操作,返回结果。

是否有任何特殊的理由来指定computeOnecomputeMore作为静态方法 - 或者有任何特殊的理由不这样做?

将它们保留为非静态当然是最容易的,即使它们当然可以是静态的而不会引起任何问题。

0 投票
4 回答
3201 浏览

c# - 如何编写返回实例集合的类方法

我正在努力定义一个填充并返回实例集合的类方法。我不知道如何解决的问题是我有私有属性要填充。

让我们使用 Book 类的示例。我不希望代码直接设置(比如说)一本书的可用性。我希望代码必须在 Book 实例上使用 CheckOut 方法。所以我们有类似的东西:

所以,我可以在我的代码中使用它:

上述实现的问题是我必须对数据库使用 N+1 次命中来加载所有书籍,而不仅仅是 1 个查询。我该如何解决这个问题?

我确定这是编程 101,但我需要问一下。

0 投票
9 回答
21449 浏览

c# - 有没有办法强制 C# 类实现某些静态函数?

我正在开发一组实现通用接口的类。我的库的使用者应该期望这些类中的每一个都实现一组特定的静态函数。无论如何我可以装饰这些类,以便编译器能够捕获其中一个函数未实现的情况。

我知道在构建消费代码时它最终会被捕获。而且我也知道如何使用一种工厂类来解决这个问题。

只是想知道是否有任何语法/属性需要类上的静态函数。

Ed删除了“接口”一词以避免混淆。

0 投票
5 回答
2717 浏览

java - 为什么这段代码会导致“非法开始表达式”异常?

这些是我的问题:

  1. 我在 "public static boolean validNumCheck(String num){" - "illegal start of expression", "';' 预期”和“')'预期”。

  2. 我怎样才能为每个号码给用户 3 次尝试?我相信现在程序要求用户输入 3 个数字,并总共给他们 3 次尝试以使数字正确(我的解释很糟糕……阅读代码以更好地理解我的意思)。

这是我的代码: