«interfaces» etiketlenmiş sorular

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

8
Zaman uyumsuz işlevleri gösteren bir arabirim sızdıran bir soyutlama mı?
Bağımlılık Enjeksiyon Prensipleri, Uygulamaları ve Desenler kitabını okuyorum ve kitapta iyi tarif edilen sızdıran soyutlama kavramını okudum. Bu gün bağımlılık enjeksiyon kullanarak bir C # kod tabanı refactoring böylece engelleme yerine async çağrıları kullanılır. Bunu yaparken kod tabanımdaki soyutlamaları temsil eden ve zaman uyumsuz çağrıların kullanılabilmesi için yeniden tasarlanması gereken …

5
Zaten soyut bir sınıfım varsa bir arayüz tanımlamak anlamlı mı?
Bazı varsayılan / paylaşılan işlevselliği olan bir sınıf var. Bunun için kullanıyorum abstract class: public interface ITypeNameMapper { string Map(TypeDefinition typeDefinition); } public abstract class TypeNameMapper : ITypeNameMapper { public virtual string Map(TypeDefinition typeDefinition) { if (typeDefinition is ClassDefinition classDefinition) { return Map(classDefinition); } ... throw new ArgumentOutOfRangeException(nameof(typeDefinition)); } protected …


2
Java koleksiyonları çerçeve arayüzlerindeki SupportuppopOperationException
Java Koleksiyonlar Çerçevesi'ne baktığımda, arayüzlerin birkaçının yorum yaptığını fark ettim (optional operation). Bu yöntemler, UnsupportedOperationExceptionyalnızca bu yöntemi uygulamak istemiyorlarsa sınıfların uygulanmasına izin verir . Bunun bir örneği, bir addAllyöntem Set Interface. Şimdi, bu soru dizisinde belirtildiği gibi, arayüzler kullanımın ne bekleyebileceğine dair belirleyici bir sözleşmedir. Arayüzler önemlidir, çünkü bir sınıfın …



1
CharSequence tanımlaması neden (CharSequence) içermiyor?
Bu, sözleşmeler aynı olduğundan hem Java SE hem de Android için geçerlidir. Java SE için CharSequence belgeleri Android için CharSequence belgeleri CharSequencebir contains(CharSequence)yöntem tanımlamaz . CharSequence#toString()Bir karakter dizisini kontrol etmek için çağrı yapma ihtiyacını önleyerek, bunun oldukça yararlı olacağının bir nedenini bulamıyorum . Örneğin, Android'de, kullanıcılar, tanımlanmış Editable#toString()olsa bile kaçınılabilecek …

5
Mutasyon yöntemleri için ayrı arayüz
Bazı kodları yeniden düzenleme üzerinde çalışıyorum ve sanırım tavşan deliğinden aşağı ilk adımı atmış olabilirim. Örneği Java ile yazıyorum, ancak sanırım agnostik olabilir. FooOlarak tanımlanan bir arayüzüm var public interface Foo { int getX(); int getY(); int getZ(); } Ve bir uygulama olarak public final class DefaultFoo implements Foo { …


4
C ++ 'da “arayüz” terimi
Java, classve arasında net bir ayrım yapar interface. (C # da inanıyorum, ama onunla hiçbir deneyimim yok). Ancak C ++ yazarken, sınıf ve arabirim arasında dil tarafından zorlanan bir ayrım yoktur. Sonuç olarak ben her zaman Java çoklu kalıtım eksikliği için bir çözüm olarak gördüm. Böyle bir ayrım yapmak C …

3
Varoluşçu türlerin arayüzlerden farkı nedir?
Varoluşçu tip verildiğinde T = ∃X.{op₁:X, op₂:X→boolean} ve bu genel Java arayüzü: interface T<X> { X op₁(); boolean op₂(X something); } Varoluşsal tür ile Java arabirimi arasındaki temel farklar nelerdir? Açıkçası sözdizimsel farklılıklar ve Java'nın nesne yönelimi vardır (gizli thisparametreler gibi ayrıntıları da içerir ). Bunlarla kavramsal ve anlamsal farklılıklarda …

3
C # çeşitli Koleksiyon Genel Arayüzleri arasındaki fark
Bir süredir Windows ve ASP.net MVC geliştirme için C # ile uğraşıyorum. Ama hala birkaç alanda net değilim. Benzer koleksiyon Jenerik Arayüzlerini kullanma ve değiştirme ile ilgili temel sorunları ve performans sorunlarını anlamaya çalışıyorum . Arasındaki temel fark nedir IEnumerable<T>, ICollection<T>, List<T>(Class)? Uygulamalarımda herhangi bir sorun görmeden bunları kullanıyor ve …

5
Değiştirilmiş Strateji Tasarım Modeli
Son zamanlarda Tasarım Desenlerine bakmaya başladım ve kodladığım bir şey, küçük bir fark dışında Strateji modeline mükemmel bir şekilde uyuyordu. Temel olarak, algoritmaların bazıları (hepsi değil), ekstra bir parametreye veya iki tanesinin geçirilmesine ihtiyaç duyuyor. Bu yüzden ikisine de ihtiyacım olacak kendi hesaplama yöntemini çağırdığınızda onlara ekstra bir parametre iletmek …

6
Üyeleri gizlemek için açık arabirim uygulamasını kullanmak için iyi nedenler nelerdir?
C #'ın inceliklerine ilişkin çalışmalarımdan biri sırasında, açık arayüz uygulamasıyla ilgili ilginç bir pasajla karşılaştım. While this syntax is quite helpful when you need to resolve name clashes, you can use explicit interface implementation simply to hide more "advanced" members from the object level. Kullanımına izin verilmesi object.method()veya yayınlanmasını gerektirme …
11 c#  design  interfaces 

3
Gevşek Birleştirilmiş Kod İçin Arabirimleri Kullanma
Arka fon Belirli bir donanım aygıtının kullanımına bağlı bir projem var, ancak bu donanım aygıtını yapmam gereken şeyi yaptığı sürece kimin yaptığı önemli değil. Bununla birlikte, aynı şeyi yapması gereken iki cihazın bile aynı üretici tarafından yapılmadığında farklılıkları olacaktır. Bu yüzden uygulamayı ilgili marka / modelden ayırmak için bir arayüz …

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.