gpt4 book ai didi

java - 如何使用私有(private) Java 类进行有效的 API 设计

转载 作者:塔克拉玛干 更新时间:2023-11-01 22:29:44 26 4
gpt4 key购买 nike

我正在编写我的第一个“API jar”,它将成为开源库并被(可能)其他开发人员使用。我读过 Joshua Block's thesis on effective API design ,他谈到的其中一件事——我从来没有想到过——是他的最小化访问最大化信息隐藏的概念。基本上,您只希望您的 API 开发人员能够访问他们将使用的 Java 对象,而不希望您的 API 开发人员能够访问您的库的任何“内容”。

在我作为 Java 开发人员的几年里,除了 public 之外,我从未需要创建任何类。此外,我也从未使用过嵌套类。所以我坐在这里想知道如何在我的 Java API 中实现这种“信息隐藏”最佳实践?而且我认为私有(private)类(可能还有嵌套类)就是答案。但是从哪里开始呢?

  • 每个.java 源文件都需要至少1 个public 类才能编译。所以对于我来说,要创建一个 private 类(和非嵌套类),我需要“将它与一个 public 类捆绑在一起。对我来说这只有 如果 public/private 类密切相关。但是如果我的 API 有一部分只包含 private 类怎么办(出于可访问性最小化目的)与任何其他 public 类似物无关?
  • 什么时候使 private 类嵌套,什么时候使它成为非嵌套?或者这只是一个偏好问题?

最佳答案

包私有(private)的类(即没有任何可见性修饰符)仅对同一包的类可见。这是一种让一个类对 API 的其他几个类可见,但对外界不可见的方法。

嵌套私有(private)类对于创建非公共(public)类也很有用,它们的范围甚至更窄:它们仅对封闭类可见。

我建议看看 Guava's source code优秀的 API 设计。您会看到各种将内部结构隐藏到外部的技术。

关于java - 如何使用私有(private) Java 类进行有效的 API 设计,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14003074/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com