В чем смысл пакетов org
и com
в Java?
Согласно Sun , пакеты должны иметь пространство имен, обратное вашему доменному имени, а затем следовать тому, что вы считаете нужным. У большинства компаний или организаций есть доменное имя .com
или .org
, поэтому большинство пакетов начинаются с com.
или org.
. Цитата из соглашений Sun Code :
Префикс уникального имени пакета всегда записывается строчными буквами ASCII и должен быть одним из доменных имен верхнего уровня, в настоящее время com, edu, gov, mil, net, org, или одним из двухбуквенных кодов на английском языке. определение стран, как указано в стандарте ISO 3166, 1981.
Последующие компоненты имени пакета различаются в соответствии с внутренними соглашениями об именовании организации. Такие соглашения могут указывать, что определенные компоненты имени каталога являются именами подразделений, отделов, проектов, компьютеров или учетных записей.
И примеры, которые они приводят, довольно ясно показывают, что вы должны использовать DNS-имя компании:
com.sun.eng
com.apple.quicktime.v2
edu.cmu.cs.bovik.cheese
Вы также увидите edu.
и net.
пакеты в дикой природе , хотя они менее распространены.
me.username
предложения по этому поводу, но не уверен, лучший это стандарт или единственный.Вы также можете видеть имена пакетов как перевернутые имена интернет-доменов (что часто также верно в реальном мире, см., Например, те,
org.apache.commons
которые коррелируют с http://commons.apache.org ).com
(Коммерческие) иorg
(организация) здесь то на самом деле домен верхнего уровня имена.Имена пакетов, как правило, предназначены только для идентификации производителя / поставщика кода, с которым вы сталкиваетесь.
источник
Обычно
com
используется компаниями при именовании пакетов,com
после которого следует название компании. Например, у вас естьcom.sun
пакеты в JVM.org
Префикс пакета в основном используется некоммерческими организациями или открытым исходным кодом, такие как Apache, w3c и т.д.источник
См. Документацию Oracle для именования пакетов
См. Соглашения об именах для стандартных имен классов / интерфейсов / аннотаций / и т.д.
example1: (здесь домен: - «stackoverflow.com», проект: - «Тест»)
com.stackoverfllow.test.handler.TestHandler
example2: (здесь домен: - "www.google.co.in", проект: - "Мой проект")
in.co.google.myproj.controller.MainController
источник