Пакети Java com і org


Відповіді:


113

На думку 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.пакунки в дикій природі , хоча вони зустрічаються рідше.


3
Що робити, якщо компанія змінить домени?
Леонардо Раеле

4
@LeonardoRaele Як правило, у цьому випадку ви входите у світ болю ;-) Більш серйозно, є два варіанти, перейменуйте всі класи, які можуть працювати, якщо код все-таки є внутрішнім, або залиште його, використовуючи стару назву, оскільки це, ймовірно, як і раніше бути унікальним.
Пол Вагленд

2
Яка найкраща угода про іменування, якщо ви не є членом організації або не маєте веб-сайту? Я бачив me.usernameзапропоновані раніше, але не впевнений, це найкращий чи єдиний стандарт.
Аарон Франке

2
@AaronFranke Я бачив, як люди використовують своє ім'я користувача GitHub як свій домен, тому, наприклад: com.guthub.pwagland.xxx головна мета - отримати унікальне ім’я, щоб вам не довелося його змінювати, і це ніколи не буде конфліктувати з ім'ям, яке обрав хтось інший.
Пол Вагленд

1
що робити, якщо у вашої компанії є 2 домена, тобто wordpress.com та wordpress.org
Janac Meena

48

Ви також можете бачити назви пакетів як перевернуті імена домену в Інтернеті (що часто також відповідає дійсності, див., Наприклад, те, org.apache.commonsщо корелює з http://commons.apache.org ). Тут com(комерційні) та org(організації) тут фактично доменні імена верхнього рівня .

Назви пакетів, як правило, лише для того, щоб визначити виробника / продавця коду, з яким ви стикаєтеся.


16
І щоб забезпечити унікальність назви пакета. Я думаю, що це досить розумний спосіб зробити це
Thorbjørn Ravn Andersen

2
Можливо, я помиляюся, але на сьогоднішній момент ком здається непотрібним, якщо всі збираються ним користуватися. Я вважаю за краще просто використовувати назву компанії. Я віддаю перевагу системі імен, яку вони мають для інших систем упаковки, таких як npm та композитор. Вони використовують 'ім'я користувача / packageName' або щось подібне. Тож я б назвав свої пакунки в java як 'username.packagename'
OzzyTheGiant

9

Зазвичай comкомпанії використовуються під час найменування пакетів, comпісля чого слід зазначити назву компанії. Наприклад, у вас є com.sunпакети в JVM.

orgПрефікс пакета в основному використовується некомерційними організаціями або відкритим вихідним кодом, такі як Apache, w3c і т.д.


Конвенція про використання .com URL-адреси компанії для внутрішнього коду та .org для будь-якого коду, оприлюдненого, є хорошою ідеєю. Ось що я підсумував із цієї відповіді.
Денніс

3
Деннісе, я не думаю, що це було б гарною ідеєю. Це означає, що вивільнення коду змінило б назви пакунків і порушило б внутрішнє програмне забезпечення, яке використовує оригінальні імена. Крім того, може виникнути зіткнення в просторі імен, якщо example.com та example.org належать різним компаніям і обидва хочуть випустити код Java.
proski

3

Див. Документ Oracle для назви пакетів

Див. Розділ Конвенції про іменування стандартних імен для класів / інтерфейсів / приміток / тощо

ім'я пакету та стандартний синтаксис класу:
<ваш домен зворотно>. ​​<ім'я проекту>. <контролер / дао / служба / обробники тощо>. <ваш клас>

example1: (тут домен: - "stackoverflow.com", проект: - "Тест")
com.stackoverfllow.test.handler.TestHandler

example2: (тут домен: - "www.google.co.in", проект: - "Мій Proj ")
in.co.google.myproj.controller.MainController

але для зарезервованих доменів, таких як java. *, javax. *, sun. * і т.д., ви повинні отримати дозвіл спільноти Oracle

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.