当前位置:  开发笔记 > 编程语言 > 正文

使用私有静态方法

如何解决《使用私有静态方法》经验,为你挑选了2个好方法。

您如何看待使用私有静态方法

就个人而言,我更喜欢使用静态私有方法来进行非静态,只要它不需要访问任何实例字段.

但我听说这种做法违反了OOP原则.

编辑:我想从风格的角度来看,而不是表现.



1> eljenso..:

一个private static方法本身并不违反OOP本身,但是当你在一个不需要(并且不能*)访问实例字段的类上有很多这些方法时,你就不是以OO方式编程,因为"对象"意味着状态+对该状态的操作一起定义.如果他们不需要任何状态,为什么要将这些方法放在该类上?

(*)=原则上,由于Java中的类级别可见性,类上的静态方法可以访问该类对象的实例字段,例如:

class Test
{
  int field = 123;

  private static void accessInstance(Test test)
  {
    System.out.println(test.field);
  }
}

当然,您需要自己传递对实例(this指针)的引用,但是您实际上是在模仿实例方法.只是提到这个是完整的.



2> tyler..:

如上所述,私有静态方法通常用于组织重用逻辑和减少/消除重复代码.我很惊讶我在这次讨论中没有注意到任何表现.来自Renaud Waldura的"决赛中的最后一句话":

(注意,私有静态方法是隐式最终的)

"由于最终方法只在声明类中实现,因此不需要动态调度最终方法的调用,而是可以使用静态调用.编译器可以直接调用该方法,完全绕过通常的方法虚拟方法调用过程.因此,最终方法也可以通过即时编译器或类似的优化工具进行内联.(请记住,私有/静态方法已经是最终的,因此始终考虑进行此优化.)"

查看全文:http: //renaud.waldura.com/doc/java/final-keyword.shtml

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