«interfaces» etiketlenmiş sorular

Arayüze programlama gibi arayüzle ilgili tasarım hususları hakkında sorular.


9
Bir yöntem imzasını değiştirdim ve şimdi 25.000'den fazla hatam var. Şimdi ne var?
Son zamanlarda çok büyük bir uygulama üzerinde çalıştığım (15M loc) yeni bir işe başladım. Önceki işimde benzer şekilde büyük bir uygulamamız vardı, ancak (daha iyisi ya da daha kötüsü için) OSGi kullanıyorduk; Yeni uygulama belki birkaç .dlls ile sadece bir büyük kod tabanıdır. Bu yüzden bu sınıfın arayüzünü değiştirmem gerekiyor, …

19
Arayüzler neden faydalıdır?
Bir süredir C # da okuyordum ve kodluyorum. Ancak yine de, Arayüzlerin kullanışlılığını çözemiyorum. Masaya çok az getiriyorlar. İşlev imzalarını sağlamaktan başka hiçbir şey yapmazlar. Uygulanması gereken işlevlerin adlarını ve imzasını hatırlayabilirsem, onlara gerek yoktur. Söz konusu işlevlerin (arayüzde) miras sınıfında yerine getirildiğinden emin olmak için vardırlar. C # harika …
158 interfaces 

5
Kalıtım yerine neden kompozisyonu tercih etmeliyim?
Her zaman kompozisyonun kalıtım yerine tercih edileceğini okudum. Türlerin aksine bir blog yazısı, örneğin, kalıtım üzerine kompozisyon kullanmayı savunuyor, ancak polimorfizmin nasıl elde edildiğini göremiyorum. Ancak insanlar kompozisyonu tercih ettiklerini söylediğinde, kompozisyon ve arayüz uygulamasının bir kombinasyonunu tercih ettikleri anlamına geliyor. Kalıtım olmadan polimorfizmi nasıl elde edersiniz? Miras kullandığım somut …

5
Zaten soyut sınıflarımız varken neden Java 8'deki arayüzlere varsayılan ve statik yöntemler eklendi?
Java 8'de, arabirimler uygulanmış yöntemler, statik yöntemler ve "varsayılan" yöntemler (uygulama sınıflarının geçersiz kılması gerekmeyen) içerebilir. Benim (muhtemelen saf) görüşüme göre, bu gibi arayüzleri ihlal etmeye gerek yoktu. Arayüzler her zaman yapmanız gereken bir sözleşme olmuştur ve bu çok basit ve saf bir konsepttir. Şimdi birkaç şeyin karışımı. Bence: statik …

15
Ünite testini etkinleştirmek için kodumuzu baştan tasarlamalı mıyız?
Şu anda ekibimizde ünite testine izin vermek için kod tasarımını değiştirmenin bir kod kokusu olup olmadığı veya bir kod kokusu olmadan ne ölçüde yapılabileceği konusunda tartışmalar var. Bu ortaya çıktı, çünkü sadece diğer tüm yazılım şirketlerinde bulunan uygulamaları uygulamaya koymaya yeni başladık. Özellikle, çok ince olacak bir Web API servisimiz …


7
Arayüz adları bir “I” önekiyle mi başlamalı?
Daha iyi bir programcı olmak için Robert Martin tarafından " Temiz Kod " u okudum . Şimdiye kadar hiçbiri gerçekten çığır açmazken, uygulamaları tasarlama ve kod yazma konusunda farklı düşünmeme neden oldu. Kitabın yalnızca hem kabul etmediğim hem de özellikle arabirim adlandırma kuralları ile ilgili olarak anlam ifade etmeyen bir …

7
C # 'daki uzatma yöntemlerine sahip arabirimler yerine soyut sınıflar ne zaman kullanılır?
"Soyut sınıf" ve "arabirim" benzer kavramlardır; arabirim ikisinin daha soyut olmasını sağlar. Farklılaşan bir faktör, soyut sınıfların gerektiğinde türetilmiş sınıflar için yöntem uygulamaları sağlamasıdır. Bununla birlikte, C # 'da, bu farklılaşma faktörü, arayüz yöntemleri için uygulamaların sağlanmasına olanak tanıyan uzatma yöntemlerinin tanıtımıyla azaltılmıştır. Bir başka farklılaşma faktörü, bir sınıfın sadece …

10
Daha iyi Show () + Hide () veya SetVisible (bool görünür)?
Hangisi daha iyi ve neden? (Arayüz tasarımı açısından): a) İkisine Show()ve Hide()fonksiyonuna sahip olmak b) Bir SetVisible(bool visible)işleve sahip olmak EDIT: Örneğin, bazı nesnelerin görünürlük durumu vardır ve bu fonksiyonlar onu değiştirmek için kullanılır. c) her üç sahip olmak Show(), Hide(), SetVisible(bool visible)işlevlerini
59 java  c++  interfaces 

3
C # neden arabirimlerdeki özelliklere izin veriyor?
C #, aşağıdaki kod geçerlidir interface I{ int property{get;set;} } Bu bana hiç mantıklı gelmiyor. Bu, arayüzlerin en önemli prensiplerinden birini kırıyor gibi görünmektedir: devlet eksikliği (başka bir deyişle alan yok). Mülkiyet gizli bir özel alan oluşturmuyor mu? Bu arayüzler için gerçekten kötü olmaz mıydı?

9
Arayüzlerin gelecekteki kullanımı için programlama
Böyle bir arayüz tasarlayan yanımda oturan bir meslektaşım var: public interface IEventGetter { public List<FooType> getFooList(String fooName, Date start, Date end) throws Exception; .... } Sorun şu ki, kodumuzda bu "end" parametresini kullanmıyoruz, tam orada, çünkü gelecekte biraz zaman kullanmak zorunda kalabiliriz. Şu anda kullanımda olmayan arayüzlere parametreler koymanın kötü …

4
Rich Hickey, “Arayüzlerin / sınıfların / türlerin bütün bu özelliği, yeniden kullanımınızı öldürür!” Derken ne demek istedi?
Rich Hickey’in 29. dakikada “ Değerlerin Değeri ” konulu açılış konuşmasında , Java gibi bir dilin tepesinden bahsediyor ve “Tüm bu arayüzler yeniden kullanımınızı öldürüyor” gibi bir ifade veriyor. Ne demek istiyor? Bu doğru mu? Cevapları araştırmamda, aşağıdakileri geçtim: En Az Bilgi Prensibi AKA Hava geçirmez API arayüzlerini teşvik eden …


11
Soyut sınıflar / yöntemler eski midir?
Bir sürü soyut sınıf / yöntem yaratırdım. Sonra arayüzleri kullanmaya başladım. Şimdi, arayüzlerin soyut sınıfları modası geçmiş kılmadığından emin değilim. Tamamen soyut bir sınıfa mı ihtiyacınız var? Bunun yerine bir arayüz oluşturun. İçinde bazı uygulamalar olan soyut bir sınıfa mı ihtiyacınız var? Bir arayüz oluşturun, bir sınıf oluşturun. Sınıfı devralın, …

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.