«interfaces» etiketlenmiş sorular

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

4
Yazdığım her sınıf bir arayüze uymalı mıdır?
Typescript'te bir oyun yazıyorum ve bir nesnenin uygulanması yerine bir arabirime dayalı kod yazdığınız " arabirim tabanlı programlama " fikrine uymaya çalışacağım olmaya karar verdim . Çok sayıda arayüz ve bunları uygulayan sınıflar yazdım, sonra bir adım geri attım ve sınıfların uygulamayı asla değiştirmem gerekmeyecek kadar basit olduğunu fark ettim, …

12
“Bir yöntem değişiklik yapılmadan yeniden kullanılırsa, yöntemi bir temel sınıfa koyun, başka bir arabirim oluşturun” iyi bir kural mıdır?
Bir meslektaşım, bir temel sınıf veya bir arayüz oluşturmak arasında seçim yapmak için bir kural belirledi. Diyor: Uygulamak üzere olduğunuz her yeni yöntemi düşünün. Her biri için şunu düşünün: Bu yöntem , herhangi bir değişiklik yapılmaksızın, tam olarak bu formda birden fazla sınıf tarafından uygulanacak mı? Cevap "evet" ise, bir …

5
Arayüz ve Kalıtım: Her iki dünyanın en iyisi mi?
Arayüzleri 'keşfettim' ve onları sevmeye başladım. Bir arayüzün güzelliği, bir sözleşme olması ve bu sözleşmeyi yerine getiren herhangi bir nesne, arayüzün gerekli olduğu her yerde kullanılabilir. Bir arabirimdeki sorun, sıradan özellikler için bir acı olan ve DRY'yi yenen varsayılan bir uygulamaya sahip olamamasıdır. Bu da iyidir, çünkü uygulamayı ve sistemi …

2
Birçok düğme için OnClickListener arabirimini uygulamanın uygun yolu nedir
Android Etkinliğim, hepsi bir OnClickListener'a ihtiyaç duyan birden fazla düğme içeriyor. Bunun gibi birçok farklı yol gördüm :: Arabirimi aktivite sınıfında uygulama Arayüzü uygulayan ayrı bir sınıf oluşturma Her düğme için anonim bir iç sınıf tanımlama. Her yaklaşımın birçok örneğini gördüm. Ancak, bana neden bir yaklaşımın diğeri yerine kullanılacağı açık …

1
Groovy Özellikleri, Kalıtım ve Arayüzler, ne zaman kullanılır?
Harika öğreniyorum ve 2.3'te eklenen yeni özellik hakkında yeni bilgi edindim . Şimdi bana öyle geliyor ki, Özellikler temel olarak bir süper sınıf ve bir Arabirimin yapabileceği her şeyi yapmanıza izin veriyor. Groovy'ye Özelliklerin eklenmesi Kalıtım ve Arayüzleri geçersiz kılıyor mu? Ve değilse, bu mekanizmaların her birini kullanmak için en …

1
Nesneler arabirimin yalnızca bir bölümünü kullandığında arabirimleri nasıl yapılandırabilirim?
Her ikisi de aynı tablo güncelleştiren bir veritabanı erişim nesnesi gerektiren iki sınıf var bir proje var. Çerçevenin ve projenin kısıtlamaları, bu iki sınıfı birleştiremeyeceğim şekilde yapar. Aşağıda kurulumun nasıl olduğunu gösteren bir vaka oluşturdum. Sınıf A'nın kaydı güncelleyebilmesi ve okuyabilmesi gerekirken, Sınıf B'nin kaydı güncelleyebilmesi ve silebilmesi gerekir. Sınıfları …

3
Arayüzlerin somut sınıflara bağlı olması uygun mudur?
Özel hata işleyici için Java'da arayüz oluşturuyorum. Bir argüman hata nesnesi geçmek istiyorum ama Exceptionsınıfın çocuğu olması gerekir . Tanımlı sınıf adımı bir arayüzde kullanmak uygun mudur? Herhangi bir uygulamaya bağımlı olmama açısından daha az bir arayüz oluşturmayacak mı? Böyle bir şey yapmaya çalışıyorum: public class CustomException { /* ... …

2
Veri Odaklı Arabirimlere Programlama
Kod tabanımızın aşağıdaki tarzda yazılmış bir kısmı vardır: // IScheduledTask.cs public interface IScheduledTask { string TaskName { get; set; } int TaskPriority { get; set; } List<IScheduledTask> Subtasks { get; set; } // ... several more properties in this vein } // ScheduledTaskImpl.cs public class ScheduledTaskImpl : IScheduledTask { public …

2
Arayüz Ayrıştırma Prensibi: Arayüzler arasında önemli bir çakışma varsa ne yapmalı?
Gönderen Pearson Yeni Uluslararası Sürüm: Çevik Yazılım Geliştirme, İlkeleri, Desenleri, ve Uygulamaları : Bazen, farklı müşteri grupları tarafından çağrılan yöntemler çakışır. Örtüşme küçükse, gruplar için arayüzler ayrı kalmalıdır. Ortak işlevler, çakışan tüm arabirimlerde bildirilmelidir. Sunucu sınıfı, ortak arabirimleri bu arabirimlerin her birinden devralır, ancak yalnızca bir kez uygular. Bob Amca, …

5
Java'da “bir arayüze programlamak” her zaman mantıklı mıdır?
Bir arayüzden uygulayan bir sınıfın nasıl örnekleneceği ile ilgili bu sorudaki tartışmayı gördüm . Benim durumumda, Java'da bir örneği kullanan çok küçük bir program yazıyorum TreeMapve orada herkesin görüşüne göre, şu şekilde somutlaştırılmalıdır: Map<X> map = new TreeMap<X>(); Programımda, arabirimde (ve arabirimde de bulunan birkaç başka) map.pollFirstEntry()bildirilmeyen işlevi çağırıyorum . …

3
Veri türleri için arabirimler kullanmak bir anti-desen midir?
Kullanıcı, Ürün, Fatura ve Sipariş gibi, modelimde (EF kullanarak) çeşitli öğelerim olduğunu varsayalım. Uygulamamda varlıkların önceden belirlenmiş kümeye ait olduğu varlık nesneleri özetlerini yazdırabilen bir kullanıcı denetimi yazıyorum, bu durumda Kullanıcı ve Ürün özetlerinin özetlenebileceğini söylüyorum. Özetlerin hepsi sadece bir ID ve bir açıklama olacak, bu yüzden bunun için basit …

6
Büyük arayüzleri ayırın
Bir veritabanına erişmek için yaklaşık 50 yöntem ile büyük bir arayüz kullanıyorum. Arayüz bir meslektaşım tarafından yazıldı. Bunu tartıştık: Ben: 50 yöntem çok fazla. Bu bir kod kokusu. Meslektaşım: Bu konuda ne yapmalıyım? DB erişimi istiyorsunuz - buna sahipsiniz. Ben: Evet, ama gelecekte belirsiz ve bakımı zor. Meslektaşım: Tamam, haklısın, …

6
Arabirimler ve yalnızca soyut yöntemlere sahip soyut sınıflar arasında bir fark var mıdır?
Diyelim ki soyut bir sınıfımız var ve bu sınıfta sadece soyut yöntemler var. Bu soyut sınıf, yalnızca aynı yöntemlere sahip bir arabirimden farklı mıdır? Bilmek istediğim şey, hem soyut hem de eşdeğer bir Arayüz ile Soyut Sınıf arasında hem felsefi, objektif hem de temel programlama dili uygulamasında herhangi bir fark …

3
Yöntem parametre türlerinin, dönüş türlerinin ve özellik türlerinin somutluğu hakkında kurallar
Bir süre önce yöntem parametre türlerinin, dönüş türlerinin ve özellik türlerinin somutluğu hakkında bir tür "temel kural" okudum, ama sadece hatırlamıyorum. Geri dönüş türlerinizi olabildiğince somut tutmak ve parametre türlerinizi mümkün olduğunca soyut tutmak ... veya tersi. Aslında iyi ya da kötü bir tavsiye olup olmadığını bilmiyorum, bu yüzden bu …

2
“Sadece neye ihtiyacınız olduğunu sor” arayüz prensibi var mı?
Temel olarak "sadece neye ihtiyacınız olduğunu sorun" diyen arayüzleri tasarlamak ve tüketmek için bir prensip kullanarak büyüdüm. Örneğin, silinebilecek bir grup türüm varsa, bir Deletablearayüz yapacağım : interface Deletable { void delete(); } Sonra genel bir sınıf yazabilirsiniz: class Deleter<T extends Deletable> { void delete(T t) { t.delete(); } } …

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.