Các gói Java com và org


126

Ý nghĩa của các gói orgcom trong Java là gì?

Câu trả lời:


113

Theo Sun , các gói nên được đặt tên theo nghịch đảo của tên miền của bạn, và sau đó là bất cứ thứ gì bạn thấy phù hợp. Hầu hết các công ty hoặc tổ chức đều có .comhoặc .orgtên miền và do đó hầu hết các gói đều bắt đầu bằng com.hoặc org.. Để trích dẫn từ Quy ước Mã Mặt trời :

Tiền tố của tên gói duy nhất luôn được viết bằng toàn bộ chữ cái viết thường ASCII và phải là một trong những tên miền cấp cao nhất, hiện tại là com, edu, gov, mil, net, org hoặc một trong các mã gồm hai chữ cái tiếng Anh xác định các quốc gia theo quy định trong Tiêu chuẩn ISO 3166, 1981.

Các thành phần tiếp theo của tên gói thay đổi theo quy ước đặt tên nội bộ của tổ chức. Các quy ước như vậy có thể chỉ định rằng các thành phần tên thư mục nhất định là bộ phận, phòng ban, dự án, máy hoặc tên đăng nhập.

Và các ví dụ mà họ đưa ra, làm rõ ràng rằng bạn muốn sử dụng tên DNS của công ty:

com.sun.eng

com.apple.quicktime.v2

edu.cmu.cs.bovik.cheese

Bạn cũng sẽ thấy edu.net.đóng gói trong tự nhiên , mặc dù chúng ít phổ biến hơn.


3
Điều gì sẽ xảy ra nếu công ty thay đổi miền?
Leonardo Raele

4
@LeonardoRaele Thông thường trong trường hợp này, bạn bước vào một thế giới đau khổ ;-) Nghiêm trọng hơn, có hai tùy chọn, đổi tên tất cả các lớp, có thể hoạt động nếu mã là nội bộ hoặc để nó bằng tên cũ, vì điều đó có thể sẽ dù sao vẫn là duy nhất.
Paul Wagland

2
Quy ước đặt tên tốt nhất là gì khi bạn không thuộc tổ chức hoặc không có trang web? Tôi đã thấy me.usernameđề xuất trước đây nhưng tôi không chắc đó là tiêu chuẩn tốt nhất hay duy nhất.
Aaron Franke

2
@AaronFranke Tôi đã thấy mọi người sử dụng tên người dùng GitHub làm miền của họ, vì vậy, ví dụ: com.guthub.pwagland.xxx mục đích chính là lấy một tên duy nhất để bạn không phải thay đổi nó và nó sẽ không bao giờ xung đột với tên mà người khác đã chọn.
Paul Wagland

1
những gì nếu công ty bạn có 2 lĩnh tức là wordpress.com và wordpress.org
Janac Meena

48

Bạn cũng có thể xem tên gói là tên miền internet đảo ngược (điều này thường đúng trong thế giới thực, hãy xem ví dụ org.apache.commonstương quan với http://commons.apache.org ). Các com(thương mại)org(tổ chức) đang ở đây sau đó thực sự Top Level Domain tên.

Tên gói nói chung chỉ để xác định nhà sản xuất / nhà cung cấp mã mà bạn đang gặp phải.


16
Và để đảm bảo tính duy nhất của tên gói. Tôi nghĩ đó là một cách khá thông minh để làm điều đó
Thorbjørn Ravn Andersen

2
Tôi có thể sai, nhưng com có ​​vẻ không cần thiết vào thời điểm này nếu mọi người sẽ sử dụng nó. Tôi chỉ muốn sử dụng tên công ty của chính nó. Tôi thích hệ thống đặt tên mà họ có cho các hệ thống đóng gói khác như npm và nhà soạn nhạc. Họ sử dụng 'tên người dùng / tên gói' hoặc thứ gì đó tương tự. Vì vậy, tôi sẽ đặt tên gói của tôi trong java như 'username.packagename'
OzzyTheGiant

9

Thường comđược các công ty sử dụng khi đặt tên cho các gói hàng, comtheo sau là tên công ty. Ví dụ, bạn có các com.sungói trong JVM.

Các orgtiền tố gói chủ yếu được sử dụng bởi các tổ chức phi lợi nhuận hoặc cho mã nguồn mở, chẳng hạn như apache, w3c vv


Quy ước sử dụng URL .com của comapany cho mã nội bộ và .org cho bất kỳ mã nào được công khai là một ý tưởng hay. Đó là những gì tôi tóm tắt từ câu trả lời này.
Dennis

3
Dennis, tôi không nghĩ đó là một ý kiến ​​hay. Nó có nghĩa là việc phát hành mã sẽ thay đổi tên gói và sẽ phá vỡ phần mềm nội bộ đang sử dụng tên gốc. Ngoài ra, sẽ có xung đột không gian tên nếu example.com và example.org thuộc sở hữu của các công ty khác nhau và cả hai đều muốn phát hành mã Java.
proski

3

Xem tài liệu Oracle để đặt tên gói

Xem Quy ước đặt tên để đặt tên chuẩn cho lớp / giao diện / chú thích / vv

tên gói và cú pháp chuẩn của lớp:
<tên miền của bạn ngược lại>. <tên dự án>. <controller / dao / service / handlers etc>. <your class>

example1: (here domain: - "stackoverflow.com", project: - "Test")
com.stackoverfllow.test.handler.TestHandler

example2: (here domain: - "www.google.co.in", project: - "My Proj")
in.co.google.myproj.controller.MainController

nhưng đối với các miền dành riêng như java. *, javax. *, sun. *, v.v. bạn nên xin phép cộng đồng oracle

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.