Các lý do người ta sẽ sử dụng tên lớp đủ điều kiện trong mã nguồn là gì?


9

Gần đây tôi đã chạy qua mã nơi các nhà phát triển đã sử dụng cả tên lớp đủ điều kiện VÀ tên lớp đã nhập trong mã nguồn của họ.

Thí dụ:

import packageA.Foo;

public class Example {
    public packageB.Bar doSomething() {
        final Foo foo = new Foo();
        ...
    }
}

Tôi có ấn tượng rằng lý do duy nhất người ta có thể muốn sử dụng tên đủ điều kiện cho các lớp trong mã nguồn là khi chúng có tên lớp giống hệt nhau trong hai gói khác nhau và chúng cần tên đủ điều kiện để phân biệt giữa hai loại. Tôi có lầm không?

Câu trả lời:


11

Không - bạn hoàn toàn đúng. Sử dụng tên gói đủ điều kiện thường được coi là phong cách kém, ngoại trừ khi cần thiết để tránh va chạm.

Nếu tên gói đặc biệt ngắn và mô tả, sử dụng mã định danh đủ điều kiện có thể làm cho mã trở nên biểu cảm hơn. Nhưng JLS quy định tên dựa trên tên miền cho hầu hết các gói, vì vậy tên gói thường không ngắn gọn và mô tả.


Tôi luôn sử dụng tên đầy đủ đủ điều kiện vì ngăn chặn va chạm (như bạn đã nói)
Joe Taras

9

Lý do khác (trừ các khoản thu) sẽ là nếu bạn chỉ cần một lớp. Điều này đặc biệt đúng nếu lớp thực hiện một giao diện chung và bạn chỉ cần tên lớp thực sự để khởi tạo. Sử dụng tên đủ điều kiện giúp dễ dàng nhận ra rằng một lớp không phổ biến được sử dụng ở đây và nơi để tìm thấy nó (giả sử các quy ước đặt tên lành mạnh).

List li = new com.foobar.veryspecial.MagicList();

Câu trả lời hấp dẫn. Tôi thích điều đó.
Brandon
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.