java - 私有(private)方法和公共(public)领域一样糟糕吗?

标签 java oop

关闭。这个问题是opinion-based .它目前不接受答案。












想改进这个问题?更新问题,以便 editing this post 可以用事实和引用来回答它.

8年前关闭。




Improve this question




请原谅挑衅性的问题标题。众所周知,您永远不应该在 Java 程序中使用公共(public)字段(除非在类似结构的类中,无论如何您都应该避免使用)。但是人们很少谈论硬币的另一面——私有(private)方法。

我的看法是这样的:如果您有私有(private)方法,那么您正在编写本地程序代码。具有私有(private)字段和一些调用许多私有(private)方法的公共(public)方法的 Java 类与具有全局变量和一些函数的 C 模块之间本质上没有区别,其中一些是 extern在其他地方编辑(除了你不能实例化 C 模块的相当大的区别)。鉴于许多最关心良好 Java 实践的人都认为您应该尽可能远离程序性陈规,我很惊讶没有更多的指导方针限制私有(private)方法的使用。

请注意,我不想建议任何人认为永远不应使用私有(private)方法(或者它们实际上与公共(public)字段一样糟糕)。但这是我的问题,我尽量做到客观:

  • 是否有任何标准的 Java 准则限制使用私有(private)方法? (标准指南的一个例子是“没有公共(public)领域”——尽管您可能会争辩说这是一个意见问题,但几乎普遍接受的是不使用公共(public)领域的良好做法)。
  • 如何使用私有(private)方法绕过? (例如,可以通过将公共(public)字段声明为私有(private)并使用公共(public) get/set 方法来绕过它们。如果我有一个包含许多私有(private)方法的类,我想我应该创建一个新类来保存它们. 但是如果我这样做了,那么我将冒着编写一个从未实例化并且行为与 C 模块完全相同的 Java 类的风险。 是否有任何广泛使用的设计模式可以帮助我减少私有(private)方法的数量在我的课上? )
  • 最佳答案

    Are there any standard Java guidelines limiting the use of private methods?



    不。

    相反 - 什么可以是 private应该是 private .很多private类中的方法绝不是一个坏习惯(只要类本身不太长)。接口(interface)应该只提供外部类可用的方法。私下里发生的事情与任何人无关。

    短一点的public其实好多了方法和一些私有(private)方法(即使它们没有被重复调用),因为它增加了可读性并使对一个公共(public)方法的高级概述成为可能。如果您有 public这种方法可以分成多个独立的部分,你可以给这些部分命名,然后去做。使用私有(private)方法。

    关于java - 私有(private)方法和公共(public)领域一样糟糕吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18657291/

    相关文章:

    java - 如何使用 Retrofit 2 解析嵌套对象?

    javascript - 代理未按预期工作

    c++ - 允许在派生类上使用流运算符

    ios - 更好地理解 Swift 中的引用类型与值类型

    C++ 二维数组类函数调用帮助

    perl - 查找 Perl 类的所有父类(super class)的最佳实践是什么?

    java - 从 portlet 中的 doView 方法重定向

    java - 如何从 Maven 程序集插件 : jar-with-dependencies? 中排除依赖项

    java - 关于在表中显示字段的查询

    java - 如何删除阴影 .jar 的 module-info.class 警告?