Javaがパッケージ名の先頭にTLDを含めることを推奨するのはなぜですか。つまり、なぜそれが必要なのですか。
package com.example.pack;
それも可能です
package pack.example.com;
TLDを最初に置くことを決定した理由は何でしょうか。
Javaがパッケージ名の先頭にTLDを含めることを推奨するのはなぜですか。つまり、なぜそれが必要なのですか。
package com.example.pack;
それも可能です
package pack.example.com;
TLDを最初に置くことを決定した理由は何でしょうか。
この規則はここに文書化されており、証明されており、非常に多くのことで機能します。
ユニバースはcom
、または任意SG
のORG
TLDです:)。
ドメインが続きますexample
。
プロジェクトが続きますpack
。
レイヤーが続きますweb | ejb | data
。
com.example.pack.web
com.example.pack.ejb
com.example.pack.data
com.example.project2.web
com.example.project2.ejb
com.example.project2.data
com.singtel.projecta.web
com.singtel.projectb.data
パッケージは、ファイルシステムのディレクトリに対応しています。pack.example.comとpack.example2.netは、URLが関連していないことを示している場合でも、両方とも同じディレクトリにありますが、com.example.packとnet.example2.packでは、関連するパッケージは同じディレクトリにあります。 。
より一般的なものからより具体的なものに移行するのは一般的な慣習であり、その逆はありません。
同じように、次のように記述します。
package_name
。class_name
(ではありませんclass_name
。package_name
);object
。member
;outer_class
。inner_class
;等々。
Javaパッケージ名は、常に最も具体的でないものから最も具体的なものへと読み取る必要があります。したがって、常に最初にドメイン名で開始する必要があります。
その理由の1つは、クラス名にパッケージ名の接尾辞ではなく接頭辞が付いていることです。したがって、各ドットの後に同じ方向に移動します。また、パッケージ名はディレクトリ名にマップされます。これにより、最も広い最初の順序も強制されます。
木の中では、幹が主要な部分であり、葉はあまり一般的ではない部分です。
パッケージ名はツリーです。
クラスパス内のすべてのクラスで、自分が作成したクラスを検索することを考えてみてください。com。*com.example。*などを開始します。自分のものが見つかるまで。
主な動機は、ファイルシステムのようにクラスとリソースを階層的に編成することにより、名前空間の衝突を回避することです。テキストファイルを。として参照するのは厄介ですMyDoc.txt\My Documents\C:
。TLD名を逆に使用すると、より一般的なものからより具体的なものへとより自然に整理されます。