Nhìn chung, tôi đã phải đối mặt với rất nhiều vấn đề bảo trì liên quan đến giao diện thuần túy hơn so với ABC, thậm chí ABC được sử dụng với nhiều kế thừa. YMMV - dunno, có lẽ nhóm chúng tôi chỉ sử dụng chúng không đầy đủ.
Điều đó nói rằng, nếu chúng ta sử dụng một sự tương tự trong thế giới thực, thì có bao nhiêu sử dụng cho các giao diện thuần túy hoàn toàn không có chức năng và trạng thái? Nếu tôi sử dụng USB làm ví dụ, đó là một giao diện khá ổn định (tôi nghĩ bây giờ chúng tôi đang ở USB 3.2, nhưng nó cũng duy trì khả năng tương thích ngược).
Tuy nhiên, đây không phải là một giao diện phi trạng thái. Nó không có chức năng. Nó giống như một lớp cơ sở trừu tượng hơn là một giao diện thuần túy. Nó thực sự gần hơn với một lớp cụ thể với các yêu cầu chức năng và trạng thái rất cụ thể, với sự trừu tượng duy nhất là những gì cắm vào cổng là phần duy nhất có thể thay thế.
Nếu không, nó sẽ chỉ là một "lỗ hổng" trong máy tính của bạn với một yếu tố hình thức được tiêu chuẩn hóa và các yêu cầu chức năng lỏng lẻo hơn sẽ không tự làm gì cho đến khi mọi nhà sản xuất đưa ra phần cứng của riêng họ để làm cho lỗ hổng đó làm gì đó, tại thời điểm đó nó trở thành một tiêu chuẩn yếu hơn nhiều và không có gì khác hơn là một "lỗ hổng" và một đặc điểm kỹ thuật về những gì nó nên làm, nhưng không có quy định trung tâm nào về cách thực hiện nó. Trong khi đó, chúng tôi có thể kết thúc với 200 cách khác nhau để làm điều đó sau khi tất cả các nhà sản xuất phần cứng cố gắng đưa ra những cách riêng để gắn chức năng và trạng thái vào "lỗ hổng" đó.
Và tại thời điểm đó, chúng tôi có thể có một số nhà sản xuất giới thiệu các vấn đề khác nhau so với các nhà sản xuất khác. Nếu chúng ta cần cập nhật thông số kỹ thuật, chúng ta có thể có 200 triển khai cổng USB cụ thể khác nhau với các cách hoàn toàn khác nhau để giải quyết thông số kỹ thuật phải được cập nhật và kiểm tra. Một số nhà sản xuất có thể phát triển các triển khai tiêu chuẩn thực tế mà họ chia sẻ với nhau (lớp cơ sở tương tự của bạn triển khai giao diện đó), nhưng không phải tất cả. Một số phiên bản có thể chậm hơn những phiên bản khác. Một số có thể có thông lượng tốt hơn nhưng độ trễ kém hơn hoặc ngược lại. Một số có thể sử dụng nhiều năng lượng pin hơn những người khác. Một số có thể bị bong ra và không hoạt động với tất cả các phần cứng được cho là hoạt động với các cổng USB. Một số có thể yêu cầu một lò phản ứng hạt nhân được gắn vào để hoạt động có xu hướng khiến người dùng bị nhiễm độc phóng xạ.
Và đó là những gì tôi đã tìm thấy, cá nhân, với các giao diện thuần túy. Có thể có một số trường hợp chúng có ý nghĩa, giống như chỉ mô hình hóa yếu tố hình thức của bo mạch chủ dựa trên vỏ CPU. Sự tương tự của yếu tố hình thức, thực sự, là khá nhiều trạng thái không trạng thái và không có chức năng, như với "lỗ hổng" tương tự. Nhưng tôi thường coi đó là một sai lầm rất lớn đối với các đội khi coi điều đó là vượt trội trong mọi trường hợp, thậm chí không gần gũi.
Ngược lại, tôi nghĩ rằng nhiều trường hợp sẽ được ABC giải quyết tốt hơn so với giao diện nếu đó là hai lựa chọn trừ khi nhóm của bạn rất khổng lồ đến mức thực sự mong muốn có tương tự trên 200 triển khai USB cạnh tranh thay vì một tiêu chuẩn trung tâm duy trì. Trong một đội cũ tôi đã tham gia, tôi thực sự đã phải chiến đấu hết mình chỉ để nới lỏng tiêu chuẩn mã hóa để cho phép ABC và nhiều kế thừa, và chủ yếu là để đối phó với các vấn đề bảo trì được mô tả ở trên.