2010-02-12 4 views
47

Tôi có một số java.util.Map ánh xạ từ một tên lôgic đến một tập hợp các tham số để sử dụng với tên đó.Tôi nên đặt tên cho java.util.Map như thế nào?

Map<String,Parameters> howShouldINameThee = ...; 

Tên tốt nhất cho bản đồ này là gì?

Tôi có nên đơn giản và chỉ cần gọi số này parameters hoặc parametersMap?

Tôi có bao gồm thông tin về khóa có tên như paramtersByName để cách sử dụng khóa String rõ ràng hơn không?

+0

Tôi ngạc nhiên khi câu hỏi này chưa được đóng lại vì chủ yếu dựa trên ý kiến ​​(không phải là tôi sẽ đóng nó, nhưng đây là những quy tắc của StackOverflow). –

Trả lời

20

Tôi có xu hướng hướng tới một cái gì đó như parametersByName để không bị nhầm lẫn về nội dung của Map. Bạn không bao giờ biết khi nào bạn sẽ phải xem lại mã mà bạn chưa xem xét trong một thời gian dài.

Trong Java, tôi thấy không cần thiết phải bao gồm tên của cấu trúc dữ liệu (như parametersByNameMap) vì việc nhập là rõ ràng.

+0

Câu cuối cùng của bạn là đúng cho Bản đồ, nhưng không nhất thiết cho Danh sách, Bộ, v.v. –

63

Bản đồ bản đồ hóa một cái gì đó đến thứ khác.
Tôi thích sử dụng các tên như uidToPerson. "Để" là cách rõ ràng nhất ngắn nhất tôi có thể nghĩ đến để cho thấy rằng tôi có một bản đồ.

Chỉnh sửa:
Tôi sẽ thêm rằng tôi muốn có bản đồ được đặt tên theo cách này, vì "khóa" và "giá trị" xuất hiện theo thứ tự đó trong tên. Trái ngược với valueByKey. Trong hoạt động lập bản đồ, khóa đến trước. Bạn put(key, value) hoặc get(key) cung cấp một giá trị.

Tất nhiên đây là vấn đề sở thích cá nhân.

+0

Tôi sử dụng quy ước này, nhưng tôi không chắc chắn cách ánh xạ Bản đồ Bản đồ ... –

+0

@CarlPritchett khá bất thường đối với tôi, nhưng những gì về fooToBarToBaz? Hoặc bazByBarByFoo ... –

+0

@PaoloFulgoni Vì vậy, đó là một fooToBar -> Baz hoặc foo -> BarToBaz? Vẫn còn mơ hồ ... –

1

Trong ứng dụng của tôi, sẽ có khá nhiều loại thông số.

Ví dụ: trong GAE, khi tôi cần trích xuất tham số yêu cầu http thành biểu mẫu có thể tuần tự, tôi đặt tên cho httpRequestParameters hoặc httpReqParams bản đồ. sessionAttrs, chẳng hạn.

Đối với GWT RPC, băm thông số từ máy khách đến máy chủ, tôi sẽ đặt tên là client2ServerParams hoặc clnt2SrvrParms và đặt tên máy chủ đối tác2clientParams hoặc srvr2ClntParms.

Trong người tiêu dùng mở, tôi sẽ đặt tên cho bản đồ, consumerAuthRequests hoặc redirectFormParameters và nhà cung cấp đối tác của nóĐặc biệt.

Trong bản đồ của đầu vào được định dạng lại Đối số chính, tôi sẽ gọi nó là inputArgs.

Trong trường hợp của tôi, httpRequestParametersBy name, client2ServerParamsByName, consumerAuthRequestsByName, inputArgsByName hoặc inputArgValueByKey, v.v ... sẽ thừa và quá dài vì tôi luôn biết rằng khóa của bản đồ là "tên". Tôi chỉ cần chắc chắn rằng tên là số nhiều để cho tôi một mực mà nó là một bộ sưu tập.

Ngoại lệ đối với thực tế này là khi khóa không phải là tên mà là đối tượng hơn là tôi đặt tên bản đồ như vehicleByDriver, projByMgr, toxicFoodListByAnimal.

7

Bạn thực sự tự trả lời câu hỏi.

Tên tốt nhất cho bản đồ này là gì?

Bạn muốn ánh xạ bản đồ của mình với tên, vì vậy bạn nói 'tên cho bản đồ' !!

Đó phải là quy ước đặt tên, theo ý kiến ​​của tôi: valueForKey.

Với các đề xuất khác keyToValue và valueByKey, tôi cảm thấy bạn cần thêm Bản đồ từ ở cuối, như sau: keyToValueMap, valueByKeyMap. Khi bạn sử dụng Đối với, rõ ràng là từ ngôn ngữ mà nó là bản đồ.

+0

IMO, đặt giá trị đầu tiên (cho dù trong valueForKey hoặc valueByKey) làm cho loại bạn đang truy xuất rõ ràng hơn. Khi valueForKey.get (key) đưa ra giá trị, đó là điều đầu tiên tôi đọc khi quét. – hubatish