当前位置:  开发笔记 > 前端 > 正文

方法何时应该是静态的?

如何解决《方法何时应该是静态的?》经验,为你挑选了3个好方法。

另外,静态方法比实例方法有任何性能优势吗?

我最近遇到了以下内容:http://www.cafeaulait.org/course/week4/22.html:

方法何时应该是静态的?

    既不读取也不写入实例字段

    独立于对象的状态

    接受参数的数学方法,将算法应用于这些参数,并返回值

    用于代替构造函数的工厂方法

我对Stack Overflow社区的反馈非常感兴趣.



1> Tom Hawtin -..:

当方法不是实例的一部分时,使方法静态.不要为微观优化而烦恼.

您可能会发现有许多私有方法可能是静态的,但您总是从实例方法(或彼此)调用.在那种情况下,这并不重要.但是,如果您希望实际能够测试代码,并且可能从其他地方使用它,您可能需要考虑在不同的,不可实例化的类中创建这些静态方法.



2> Kyle Cronin..:

方法是否是静态的更多是设计考虑而不是效率.静态方法属于一个类,其中非静态方法属于一个对象.如果您有Math类,则可能有一些静态方法来处理加法和减法,因为这些是与Math相关的概念.但是,如果你有一个Car类,你可能会有一些非静态方法来改变齿轮和转向,因为它们与特定的汽车相关联,而不是一般的汽车概念.



3> marcospereir..:

静态方法的另一个问题是,为它们编写单元测试是非常痛苦的 - 至少在Java中.你不能以任何方式模拟静态方法.谷歌测试博客上有一篇关于此问题的帖子.

我的经验法则是只有在没有外部依赖关系(如数据库访问,读取文件,电子邮件等)时才编写静态方法,以使它们尽可能简单.

推荐阅读
拾味湖
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有