Các phương pháp thực hiện các loại bổ sung và loại bỏ là các hoạt động tùy chọn trong giao diện bộ sưu tập. Điều này có nghĩa rằng lớp thực hiện không phải là yêu cầu cung cấp các định nghĩa chức năng cho những phương pháp này.Đây là một cách rất không bình thường để xác định một giao diện. Như bạn đã thấy, một giao diện là hợp đồng thiết kế hướng đối tượng. Nó nói, "Không có vấn đề làm thế nào bạn chọn để thực hiện các giao diện này, tôi đảm bảo rằng bạn có thể gửi các thông điệp này cho đối tượng này." 4, nhưng một chiến dịch "tùy chọn" vi phạm các nguyên tắc rất cơ bản này; nó nói rằng kêu gọi một số phương pháp sẽ được cũng không phải thực hiện hành vi có ý nghĩa. Thay vào đó, họ sẽ ném ngoại lệ! Nó xuất hiện rằng biên dịch loại an toàn bỏ đi.Nó không phải là khá xấu. Nếu một thao tác là tùy chọn, trình biên dịch vẫn còn hạn chế bạn gọi điện thoại chỉ là những phương pháp trong giao diện đó. Nó không phải là như một ngôn ngữ năng động, trong đó bạn có thể gọi bất kỳ phương pháp cho bất kỳ đối tượng, và tìm hiểu tại thời gian chạy cho dù một cuộc gọi cụ thể sẽ work.5 ngoài ra, hầu hết các phương pháp có một bộ sưu tập như là đối số chỉ đọc từ bộ sưu tập đó, và tất cả các "đọc" phương pháp của bộ sưu tập không tùy chọn.Tại sao bạn sẽ xác định các phương pháp như "tùy chọn"? Làm như vậy sẽ ngăn chặn sự bùng nổ của giao diện trong thiết kế. Các mẫu thiết kế cho các thư viện container dường như luôn kết thúc với một plethora khó hiểu của giao diện để mô tả cho mỗi người trong số các biến thể trên chủ đề chính. Nó không phải là thậm chí có thể nắm bắt tất cả các trường hợp đặc biệt trong giao diện, vì một ai đó luôn luôn có thể phát minh ra một giao diện mới. "Không được hỗ trợ hoạt động" phương pháp đạt được một mục tiêu quan trọng của Java
đang được dịch, vui lòng đợi..
