问题标签 [public-method]

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 投票
3 回答
3532 浏览

javascript - JavaScript:公共方法和原型

我不完全确定如何在 JS 中实现 OOP 概念。

我有一个完全在其构造函数中声明的类:

AjaxList 有多个实例。当我调用refresh()其中一个时,我只希望那一个列表能够自行刷新。在以下情况下:

refresh()调用似乎使所有 AjaxLists 刷新自己。这样做的正确方法是什么?

我正在使用 jQuery,如果它有什么不同的话。

0 投票
2 回答
557 浏览

java - 公共静态方法 - 一个不好的迹象?

我刚刚在这里阅读了这篇文章:http: //hamletdarcy.blogspot.com/2008/04/10-best-idea-inspections-youre-not.html,最后一点特别让我想到了我的代码,具体建议:

世界上的公共方法在您的对象上做什么,它不依赖于对象内的任何字段?这当然是一种代码味道。问题是检查的“自动修复”是应用静态关键字。不。那不是你想做的。不依赖于对象状态的公共方法不可能成为具有明确规定的章程的对象的一部分。它只是没有凝聚力,应该放在其他地方。所以:如果方法是私有的,接受自动修复,但如果方法是公共的,那么不要。

有问题的代码本质上是一个对象转换器。它接受类型 A 的对象并将其转换为不同的类型。

我的层次结构是这样的:

接口 ObjectTransformer -> GenericObjectTransformer

然后在此之下,GenericObjectTransformer 由 ObjectTransformerA 和 ObjectTransformerB 扩展

现在,ObjectTransformerA 和 ObjectTransformerB 都需要一些功能,但实际上并不依赖于 GenericObjectTransformer 的任何实例变量,因此它是 GenericObjectTransformer 中受保护的静态方法。

这是否违反了上述规则?显然这是受保护的而不是公共的,但它仍然是一个可以从类外部访问的方法,与类本身无关?

有什么想法吗?

0 投票
7 回答
2001 浏览

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

有很多人反对使用“公共/私有”静态方法。我四处寻找,没有运气,并试图找到任何提倡善用静态方法的人。

假设方法总是有凝聚力的,在哪里可以使用公共静态方法?这些方法在 Java 和 .NET 之间是否有所不同(也就是在一种方法中比另一种更容易接受)?

最近的这篇SO帖子激起了我对这个话题的愤怒/兴趣。

0 投票
4 回答
227 浏览

java - 为什么java中的Object类中有公共方法?

当我们知道在 java 中所有类默认扩展 Object 类时,为什么有带有 public 修饰符的方法,其中受保护的方法足以从任何类访问这些方法?所以需要一些这方面的信息。谢谢。

0 投票
3 回答
189 浏览

php - 是否有必要将方法定义为“公共”?

如果所有方法都是公共的,除非它们被明确定义为其他东西,那么是否有必要将方法定义为public

0 投票
4 回答
3428 浏览

c# - 使用另一个类的类方法

我正在尝试在另一个类中使用类内部的方法。

我希望能够从任何地方调用 Crystal.Utilities.Logging.Log() ,并且能够调用 Crystal.MainForm.general_log_add_item() 。但它不允许我,因为如果我把它设为公开,那么我就看不到它,如果它是静态的,那么它就不能与我的列表框交互。

0 投票
2 回答
236 浏览

objective-c - 私有方法作为公共方法出现

我正在尝试通过使用私有方法来改进我的应用程序的设计。来自 .NET 我有点困惑,因为我在 .m 文件中声明了这些方法,但从其他文件中它们仍然显示出来,即它们仍然可以访问。

.m 文件:

0 投票
4 回答
10263 浏览

actionscript-3 - 公共静态方法与公共方法

公共静态方法和公共方法有什么区别?为什么要使用公共静态方法?

0 投票
4 回答
116 浏览

c# - 将公共方法转换为扩展方法

在我项目的核心库中,我们有一个非常大的类,它趋向于成为上帝对象。原因之一是,在一段时间内,应该在不同模块中的任务被放到了这个类中。对于前 -

重构和将不需要的模块特定行为移出此类的问题之一是模块 X 和模块 Y 更改其代码将是大量工作。作为一种解决方法,我正在考虑将这些方法转换为扩展方法,然后将它们移动到它们相关的模块中。对于前 -

我发现这不会产生任何编译问题,只要模块 Y 不使用 DoModuleXJob,反之亦然,我确信这一点。

这是一个好的解决方案吗?在这种情况下有没有更好的方法?

0 投票
5 回答
2647 浏览

java - 公共静态工厂方法

首先,如果这是一个非常愚蠢的问题,请原谅我,我只是在努力学习这门语言的核心。我正在阅读 Effective Java,第一章讨论的是静态工厂方法与构造函数。他们的优点和缺点。让我感到困惑的几件事是:

  1. 静态工厂方法返回的对象的类是非公共的——它到底是什么意思?
  2. 与构造函数不同,静态工厂方法不需要在每次调用时都创建一个新对象——这是怎么发生的?我调用工厂方法只是为了获取一个新对象,我们是否在工厂方法中检查对象是否已经存在?

谢谢。