Genelde, saf arayüzlerle ilgili, çok sayıda kalıtımda kullanılan ABC'ler bile, ABC'lerden çok daha uzak, çok daha fazla bakım sorunuyla karşı karşıya kaldım. YMMV - bilmiyorum, belki ekibimiz onları yetersiz kullandı.
Bununla birlikte, eğer gerçek bir dünya analojisi kullanırsak, işlevsellik ve durumdan tamamen yoksun olan saf arayüzler için ne kadar faydası var? USB'yi örnek olarak kullanırsam, bu oldukça kararlı bir arayüzdür (bence şimdi USB 3.2'deyiz, ancak geriye dönük uyumluluk da var).
Yine de vatansız bir arayüz değil. İşlevsellikten yoksun değil. Saf bir arayüzden çok soyut bir temel sınıf gibidir. Çok özel fonksiyonel ve devlet gereklilikleri olan somut bir sınıfa daha yakındır; sadece soyutlama, limana takılan tek ikame parçadır.
Aksi taktirde, standart bir form faktörü ve bilgisayarınızda her deliğin bir şey yapması için kendi donanımı olana kadar kendi başına bir şey yapamayan daha gevşek fonksiyonel gereksinimleri olan bilgisayarınızda sadece bir "delik" olacaktır. çok daha zayıf bir standart haline gelir ve bir "delikten" ve ne yapması gerektiğine dair bir spesifikasyondan başka bir şey olmaz, ama nasıl yapılacağına dair merkezi bir hüküm yoktur. Bu arada, tüm donanım üreticileri işlevsellik eklemek ve bu “deliğe” belirtmek için kendi yollarını bulmaya çalıştıktan sonra bunu yapmanın 200 farklı yolunu bulabiliriz.
Ve bu noktada başkalarına göre farklı problemler ortaya çıkaran bazı üreticilerimiz olabilir. Şartnameyi güncellememiz gerekirse, güncellenmesi ve test edilmesi gereken şartnamelerin tamamen farklı yöntemlerle ele alınması için 200 farklı somut USB port uygulaması olabilir. Bazı üreticiler kendi aralarında paylaştığı fiili standart uygulamalar geliştirebilir (bu arayüzü uygulayan analog temel sınıfınız), ancak hepsi değil. Bazı sürümler diğerlerinden daha yavaş olabilir. Bazıları daha iyi verime sahip olabilir, ancak daha kötü gecikme süresi veya bunun tersi olabilir. Bazıları diğerlerinden daha fazla pil gücü kullanabilir. Bazıları sönebilir ve USB bağlantı noktalarıyla çalışması gereken tüm donanımlarla çalışmayabilir. Bazıları, kullanıcılarına radyasyon zehirlenmesi verme eğiliminde olan bir nükleer reaktörün çalışmasına bağlanabilir.
Ve şahsen saf arayüzlerle bulduğum şey buydu. Bir anakartın form faktörünü bir CPU vakasına karşı modellemek gibi, mantıklı oldukları bazı durumlar olabilir. Form faktörü analojileri, aslında, analog "delik" ile olduğu gibi, hemen hemen hiç vatansızdır ve işlevsellikten yoksundur. Ancak çoğu zaman takımların yakın, hatta her durumda bir şekilde daha üstün olduğunu düşünmelerini büyük bir hata olarak görüyorum.
Aksine, takımınız o kadar devasa olmadıkça iki seçenek olsa, ABC'ler tarafından arayüzlerden ziyade daha fazla vakanın daha iyi çözüleceğini düşünüyorum. korumak, sağlamak, sürdürmek. İçinde bulunduğum eski bir takımda, aslında ABC'lerin ve çoklu kalıtımın sağlanması için ve özellikle yukarıda açıklanan bakım sorunlarına cevap olarak kodlama standardını gevşetmek için çok mücadele etmek zorunda kaldım.