7

Web サイトからデータを取得して解析する最初の API を作成しています。そのため、多くのネットワークと解析が含まれています。API が公開すべきではない内部パッケージを持っていることについて読みました。Javadoc のように。だから私の質問は、内部パッケージに入れるべきものと入れるべきでないものです。これが私のパッケージ デザインです。重要でないものは省略しています。

.networkstats
.networkstats.model
.networkstats.parser

パッケージ内networkstatsには というクラスがありNetworkStatsます。これは、すべてのネットワーク接続を処理および取得するメイン クラスです。parser次に、パッケージ内のクラスを使用してデータを処理します。modelパッケージ内のデータを保持する Model クラスを返した後。ユーザーが使用することを意図していないクラスとインターフェースがいくつかあるため、内部パッケージを含めたいと思います。

たとえば、すべてのネットワーク接続を処理するクラスを作成して、他のクラスNetworkStatsがアクセスできるようにしたいとします。私がそれをしたい理由は、コードが1か所にある可能性があるときに、他のクラスにコードをコピーしたくないからです。もちろん、他のユーザーがこのクラスを使用したくないので、内部パッケージに入れますか? parserまた、パッケージも内部パッケージに入れます。私の主な質問は、一般に使用されることを意図していないクラスとインターフェースを内部パッケージに入れますか? 彼らはまだアクセスできることを知っています。

.networkStats.internal.DataManager // class that handles network connections
.networkStats.internal.parser
4

2 に答える 2

10

この Java API 設計チェックリストが役立つ場合があります。最初のセクションは、パッケージ デザインについてです。

http://theamiableapi.com/2012/01/16/java-api-design-checklist/

フェレンツ

于 2012-04-25T21:24:14.543 に答える
3

まず第一に、サブパッケージは他のパッケージと同じであると言いたいです。通常の Java にはプライベートパッケージのようなものはありません。そのような機能が必要な場合は、OSGi を使用する必要があります。

つまり、クラスがアクセスされないように保護したい場合は、クラス名の public を削除し、「API」クラスのみを public のままにします。これは、ユーザーがアクセスするクラスです (ユーザーを、フレームワーク)。

作成するパッケージが多いほど、公開する必要がある「プライベート機能」が増えます。

于 2012-04-25T20:59:48.807 に答える