«composition» etiketlenmiş sorular

14
Bu “mirasa karşı iyilik kompozisyonu” kavramı nereden geliyor?
Son birkaç ayda, "mirasa karşı iyilik kompozisyonu" mantığı hiçbir yerden fırlamış ve programlama topluluğu içinde neredeyse bir çeşit meme haline gelmiş gibi görünmektedir. Ve onu her gördüğümde biraz şaşırdım. Birinin dediği gibi "kırıcıların lehine matkaplar". Tecrübelerime göre, kompozisyon ve kalıtım, farklı kullanım durumlarına sahip iki farklı araç ve bunları birbirinin …

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 …

3
“Mirasa ilişkin kompozisyon” “kuru ilke” yi ihlal ediyor mu?
Örneğin, diğer sınıfların genişletmesi için bir sınıfım olduğunu düşünün: public class LoginPage { public String userId; public String session; public boolean checkSessionValid() { } } ve bazı alt sınıflar: public class HomePage extends LoginPage { } public class EditInfoPage extends LoginPage { } Aslında, alt sınıfın geçersiz kılacak bir yöntemi …

5
Bir yöntemin geçersiz sayılabileceğini, bir yöntemin çağrılabileceğini tanımlamaktan daha güçlü bir bağlılık olarak tanımlamak nasıl olabilir?
Gönderen: http://www.artima.com/lejava/articles/designprinciples4.html Erich Gamma: Hala on yıl sonra bile doğru olduğunu düşünüyorum. Kalıtım, davranışı değiştirmek için harika bir yoldur. Ancak bunun kırılgan olduğunu biliyoruz, çünkü alt sınıf, geçersiz kıldığı bir yöntemin çağrıldığı bağlam hakkında kolayca varsayımlarda bulunabilir. Taktığım alt sınıf kodunun çağrılacağı dolaylı bağlam nedeniyle, temel sınıf ve alt sınıf …

2
“Oluşturma” nın anlamı nedir?
Pek çok metin görüyorum, özellikle de işlevsel programlama metinleri, belirli CS kavramlarının "oluşturulmadığını" iddia ediyor . Örnekler: kilitler oluşturulmaz, monadlar oluşturulmaz. Bu ifadenin anlamını tam olarak takip etmekte zorlanıyorum. Kompozisyonu düşündüğüm zaman, ya fonksiyon kompozisyonunu ya da nesne toplanmasını düşünüyorum (“kalıtım yerine kompozisyon lehine” olduğu gibi), ama bu insanların onu …

8
“Miras yerine kompozisyonu tercih et” - İmza değişikliklerine karşı savunmanın tek nedeni mi?
Bu sayfa , miras üzerinde kompozisyonu aşağıdaki argümanla savunuyor (kelimelerimde yeniden ifade etti): Üst sınıf yönteminin imzasındaki bir değişiklik (alt sınıfta geçersiz kılınmamış olan), Devralma kullandığımızda birçok yerde ek değişikliklere neden olur. Ancak, Kompozisyon'u kullandığımızda, gerekli ek değişiklik yalnızca tek bir yerde bulunur: Alt sınıf. Miras yerine kompozisyonu tercih etmenin …

2
Bir paketleyiciye çok sayıda düz geçiş işlevi yazmaktan nasıl kaçınırım?
Ortak bir temel türü başka bir sınıfı sarar bir sınıf var. Taban tipi arabirim oldukça büyük olduğundan, çok sayıda geçiş işlevi yazmayı içerir. Bundan kaçınmanın bir yolunu arıyorum. Bir örnek verelim: Car / \ Volvo VolvoWithTrailer Şimdi VolvoWithTrailer için araç arayüzündeki her bir işlevi uygulamak ve daha düşük bir şey …

9
Bir geliştirici bilgisayar donanımının iç işleyişini bilmeli mi? [kapalı]
Kapalı . Bu soru görüş temelli . Şu anda cevapları kabul etmiyor. Bu soruyu geliştirmek ister misiniz? Bu yayını düzenleyerek gerçekler ve alıntılarla yanıtlanabilmesi için soruyu güncelleyin . 5 yıl önce kapalı . Sadece belleğin nasıl atandığını ve bellek yönetimini (örneğin C'den öğrenebileceğiniz şeyler) değil, donanım yönünü ve bilgisayar donanımının …

3
Kalıtım üzerine kompozisyon ama
Kendime yazılım mühendisliğini öğretmeye çalışıyorum ve beni şaşırtan bazı çelişkili bilgilere karşı geliyorum. OOP ve soyut sınıfların / arayüzlerin ne olduğunu ve nasıl kullanıldığını öğreniyorum, ama sonra 'kompozisyonu kalıtımdan yana tutması' gerektiğini okuyorum. Kompozisyon, bir sınıfın bu yeni nesnenin işlevselliğini kullanmak / etkileşimde bulunmak için başka bir sınıfın nesnesini oluşturması …

4
Elle bağımlılık enjeksiyonu kompozisyon ve polimorfizme daha iyi bir alternatif mi?
İlk olarak ben bir giriş seviyesi programcısıyım; Aslına bakılırsa, bir AS derecesini yaz boyunca bir final capstone projesi ile bitiriyorum. Yeni işimde, yapacak bir proje olmadığında (takımı daha yeni işe alımlarla doldurmayı bekliyorlar), beklediğimde okumak ve öğrenmek için kitaplar verildi - bazı ders kitapları, diğerleri çok fazla değil (Kod Tamamlandı …


5
Bu senaryoda kompozisyon veya miras tercih etmeli miyim?
Bir arayüz düşünün: interface IWaveGenerator { SoundWave GenerateWave(double frequency, double lengthInSeconds); } Bu arayüz, farklı şekillerdeki dalgaları (örneğin SineWaveGeneratorve SquareWaveGenerator) üreten birkaç sınıf tarafından uygulanır . SoundWaveHam ses verilerine değil, müzik verilerine dayanan bir sınıf uygulamak istiyorum . Bir notun adını ve vuruş sayısı (saniye değil) cinsinden bir uzunluğunu alır …


1
Basit kompozisyon yerine zayıf referansların kullanılmasının daha iyi olacağı bir durum var mı?
Her ne kadar Java belgeleri Zayıf referansların öncelikle eşleştirmeleri standartlaştırmak için olduğunu belirtse de, internette WeakHashMap'in kullanım ömrü boyunca nesne meta verilerini depolamak için mükemmel olduğunu belirten birçok , çok , çok insan bulacaksınız . Ancak, hiç kimse anlaşılabilir VE uygun bir örnek vermekten rahatsız olmaz . Nesne eklemek için …

9
Kalıtım ve Satranç Taşları Kompozisyonu
Bu yığın değişiminin hızlı bir araştırması, genel kompozisyonda genellikle mirastan daha esnek olarak kabul edildiğini, ancak her zamanki gibi projeye vb. Bağlıdır ve mirasın daha iyi bir seçim olduğu zamanlar vardır. Her parçanın bir ağ, muhtemelen farklı animasyonlar ve benzeri bir 3D satranç oyunu yapmak istiyorum. Bu somut örnekte, her …

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.