Mẫu giả dạng pseudo-typedef được đề cập bởi Shog9 sẽ hoạt động - mặc dù nó không được khuyến khích sử dụng ANTIPATTERN - nhưng nó không đề cập ý định của bạn. Mục tiêu của pseudo-typedef là giảm sự lộn xộn trong khai báo và cải thiện khả năng đọc.
Điều bạn muốn là có thể thay thế một nhóm các khai báo Generics bằng một giao dịch duy nhất. Tôi nghĩ rằng bạn phải dừng lại và suy nghĩ: "theo cách phù thủy là nó có giá trị?". Ý tôi là, tôi không thể nghĩ ra một kịch bản mà bạn sẽ cần đến điều này. Hãy tưởng tượng lớp A:
class A {
private Map<String, Integer> values = new HashMap<String, Integer>();
}
Hãy tưởng tượng bây giờ tôi muốn thay đổi trường 'giá trị' thành Bản đồ. Tại sao tồn tại nhiều lĩnh vực khác được phân tán qua mã cần thay đổi tương tự? Đối với các hoạt động sử dụng 'giá trị', việc tái cấu trúc đơn giản là đủ.
Nguồn
2008-09-02 11:58:04
Bạn có thể không chấp nhận một mẫu giải thích cho câu hỏi của mình, đặc biệt khi có các giải pháp thay thế. Nhưng nếu nó giúp bạn ra ngoài với vấn đề cụ thể của bạn ... –
(Bỏ qua lời khuyên của người kiểm duyệt về tiếng ồn trên các chủ đề "typedef trong Java") ... Điều đó còn tồi tệ hơn một mẫu chống. Nó tạo ra một kiểu hạng nhất mới, với các mục riêng của nó trong các bảng phương thức ảo và tất cả các nghĩa vụ như vậy.Một kiểu gõ C++ chỉ đơn thuần là làm cho phần "ArrayList" một phần DRY, vì vậy bạn có thể thay đổi String (hoặc ArrayList) chỉ ở một nơi. –
Phlip
Có, kiểu chữ C/C++ là một tính năng ngôn ngữ được tôn trọng với sự hỗ trợ tốt và nhiều công dụng hợp pháp. Đây không phải là. Do đó toàn bộ "antipattern" điều. – Shog9