2

我要问的问题是关于一个非常常见的话题,但我没有找到我的确切问题,所以我明确地问它。

我正在用java编程,我需要实现一些类,比如A、B、C和D。它们都是SDK的一部分,只有D是公共的(对使用我的sdk的开发人员可见)。

A、B 和 C 是处理不同主题的类(比如说蓝牙通信、Web 服务使用和专有算法),尽管它们需要相互通信。我想根据包中的“技能”(公共方法、蓝牙、Web 服务、算法)来划分包中的类,但如果我创建不同的包,它们将彼此不可见。

所以,我在这里看到的唯一实现是一个独特的包并且没有修饰符(所以他们将“看到”彼此,用户只能访问 D 类)。有什么方法可以创建不同的包以便让我以更好的方式组织我的 sdk?(想象一下很多课程,它很容易变得一团糟:))

在此先感谢您的帮助

乔治奥

4

3 回答 3

1

我认为正确的方法是拥有一个包含通用接口和数据的包(如枚举、Point 等简单类......)。所有其他包都将引用这个公共包,因为它们的类将实现公共接口。

这也为您提供了不同包之间真正解耦的好处。

于 2013-03-11T16:03:40.437 回答
1

如果我理解你想要做什么,我认为 Java 语言没有给你提供一种方法来做到这一点。

我对您的问题的理解是“我正在开发一个 API,我只想在其中公开某些类和/或方法;包中的其他类和/或方法需要被公开的类和/或方法使用,但我不希望它们标记为公开,因此可供使用 API 的程序员使用”。

你没有说为什么这是必要的或可取的。

该语言不支持这种方式的可见性。您可以通过混淆器运行您想要隐藏的代码,以(极大地)阻止任何人理解这些方法是什么并调用它们,当然不要混淆您想要使用的那些,但这是我能想到的和。

于 2013-03-11T16:34:25.303 回答
0

你可以为你的类使用不同的包,只要确保它们是公共的,这样它们就可以对其他包中的其他类可见。

于 2013-03-11T16:06:41.940 回答