Chúng tôi có một thành phần nền tảng (viết bằng Java) mà giờ đây sẽ tương thích ngược trong một khoảng thời gian nhất định, ví dụ: 3 năm. Có khả năng nào, việc triển khai tính năng mới hoặc sửa lỗi phải yêu cầu thay đổi giao diện trong nền tảng?Điều gì sẽ làm cho khả năng tương thích ngược không thể?
Một ví dụ cụ thể là, giả sử có một số loại giao diện người nghe được xác định trong nền tảng và mã máy khách sẽ triển khai trình nghe. Sau đó một phương pháp mới có vẻ cần thiết trong người nghe để giới thiệu một tính năng mới, nhưng chúng tôi không thể làm điều đó bởi vì nó sẽ phá vỡ giao diện để một số khách hàng sẽ không thể biên dịch được.
Bạn nên tạo giao diện mới mở rộng giao diện ban đầu bằng phương pháp mới? Khách hàng cần tính năng mới này sẽ triển khai giao diện mới và các mã máy khách khác không cần phải thay đổi. Tất nhiên các lời gọi trong nền tảng bây giờ sẽ kiểm tra kiểu của người nghe, nếu nó là giao diện mới với phương thức mới, thì phương thức mới sẽ được gọi, hoặc không có gì sẽ được thực hiện.
Loại thay đổi này có thể làm cho mã trông không đơn giản, nhưng tôi đoán nó sẽ vẫn hoạt động. Có trường hợp nào thay đổi giao diện trong nền tảng không?