Đặt tên lớp trừu tượng Java


9

Thí dụ:

Bạn tạo một lớp trừu tượng cho các hành động Ajax. Các hành động Ajax khác nhau sẽ mở rộng lớp này.

Vấn đề:

  1. Bạn có đặt tên lớp AjaxAction hoặc AbstractAjaxAction không?
  2. Khi bạn tạo các lớp con, bạn có đặt tên cho chúng không:
    • Hoạt động
    • AjaxAction
    • Chỉ cần đặt tên cho chúng là những gì chúng là

Tôi đã không thể tìm thấy quy ước "chính thức" là gì. Tôi không thấy cần một tiền tố "Trừu tượng" hoặc bất kỳ quy ước đặt tên bắt buộc nào trong các lớp con. (Dù sao thì nó cũng có thể phù hợp.)

Có một hội nghị chính thức? Bạn có thể liên kết tôi với nó? Và ý kiến ​​của bạn về chủ đề này là gì?

Câu trả lời:


16

Khi có thể, tôi cố gắng bỏ các chi tiết triển khai ra khỏi tên, bao gồm tiền tố / hậu tố cho một lớp hoặc giao diện trừu tượng.

Một nơi để tìm hướng dẫn / cảm hứng về cách đặt tên là API Java. Tôi không thể nghĩ ra bất kỳ phần nào sử dụng tiền tố (với một ngoại lệ lớn là Bộ sưu tập API, sử dụng rất nhiều tiền tố Trừu tượng). Tìm kiếm sau đây sẽ mang lại một số ví dụ khá hay:

"lớp trừu tượng công khai" tại download.oracle.com/javase/6

Bạn sẽ tìm thấy các lớp trừu tượng được đặt tên một cái gì đó trừu tượng và các lớp con cụ thể được đặt tên một cái gì đó cụ thể hơn. Ví dụ, lớp trừu tượng Readercó lớp con bê tông BufferedReader, StringReader, InputStreamReadervv

Vì các lớp con cụ thể của bạn chỉ là các phiên bản cụ thể hơn của lớp trừu tượng của bạn, nên có ý định tiết lộ để chọn tên của bạn theo cùng một cách. Trong ví dụ của bạn, tôi sẽ đặt tên lớp trừu tượng AjaxActionvà sử dụng nó trong tên cho các lớp con cụ thể ( SpecificAjaxAction).


12

Chọn một cái gì đó , và nhất quán. Cho dù bạn sử dụng hậu tố Baseđể chỉ ra một lớp cơ sở dự định hoặc tiền tố Abstract, chỉ cần nhất quán về nó.

Có rất nhiều ý kiến ​​về loại điều này cũng như có, lập trình viên. Ý kiến ​​của tôi, đối với những gì đáng giá, vì tính nhất quán trong đặt tên, trong một dự án (hoặc nhóm phát triển hoặc bất cứ điều gì) quan trọng hơn bất kỳ kế hoạch đặt tên cụ thể nào.


4

Tôi sẽ đặt tên lớp trừu tượng AjaxActionBasevà các lớp con hậu tố bằng 'Hành động' hoặc 'AjaxAction', bất kỳ kết thúc nào dễ đọc hơn đối với các hành động tôi cần tạo.


0

Tôi thích đưa ra một gợi ý rằng một lớp là trừu tượng trong tên vì một lý do đơn giản nhưng rất quan trọng:

  • Tốt hơn là xây dựng API của bạn xung quanh các giao diện thay vì các lớp trừu tượng.
  • Bạn muốn sử dụng tên đơn giản, ví dụ "Hành động" để đặt tên cho giao diện của bạn. Xem ví dụ Danh sách hoặc Bản đồ trong API Bộ sưu tập Java - tất cả đều là giao diện.

Do đó, tôi thường gọi một lớp trừu tượng cấp cao nhất là AbstractAction hoặc BaseAction. Trừ khi có một nhu cầu rất cụ thể, thông thường tôi sẽ không công khai những điều này, để người dùng mã được định hướng sử dụng giao diện. Các lớp cơ sở trừu tượng thường phải là một chi tiết triển khai chứ không phải là một tính năng của API của bạn, trừ khi bạn rất rất cẩn thận về cách bạn muốn mọi người mở rộng chúng.

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.