«design-patterns» etiketlenmiş sorular

Tasarım deseni, yazılım tasarımında sık karşılaşılan bir sorunun genel yeniden kullanılabilir çözümüdür.

9
Yazılım Kalıplarını Yazılım Dünyası dışındaki kişilere nasıl açıklamalısınız?
Tasarım kalıplarını yeğenime açıklamak istiyorum, ama her zaman bunu yapmak için mücadele ediyorum. Bunun nedeni büyük ölçüde tasarım desenlerini net olarak anlamamış olmasından kaynaklanıyor. MVC, Singleton, Fabrika, Depo vb.Gibi kalıpları 10 yaşından büyük çocukların bile anlayabileceği kadar basit bir şekilde açıklamayı nasıl öneriyorsunuz? Kalıpları anlamada yardımcı olabilecek örnekler arıyorum. Oyuncak, …

1
Bir yapıştırıcı veya yönetim sınıfı ne zaman çok şey yapıyor?
Tasarımlarımdaki diğer sınıfları yöneten merkezi sınıflar yapmaya eğilimliyim. Her şeyi kendisi saklamaz, ancak çoğu veri isteği ilk önce "yöneticiye" gider. Bir cevap bakarken bu soruya ben terimini "Tanrı Nesne" fark ettim. Wikipedia bunu anlaşılır bir şekilde karşıt önleyici olarak listeliyor. Verileri ve mesajları bir yerden bir yere geçiren meşru bir …

4
Alan adı odaklı tasarımda yeniden düzenleme [kapalı]
Kapalı . Bu sorunun ayrıntılara veya açıklığa ihtiyacı var . Şu anda cevapları kabul etmiyor. Bu soruyu geliştirmek ister misiniz? Bu yayını düzenleyerek ayrıntıları ekleyin ve sorunu giderin . 6 yıl önce kapalı . Yeni bir proje üzerinde çalışmaya başladım ve etki alanı güdümlü tasarım kullanıyoruz (Eric Evans tarafından Domain-Driven …

2
İşlevsel programlama, aynı nesneye birden çok yerden başvurulduğu durumu nasıl ele alır?
İnsanların (bu sitede de) fonksiyonel programlama paradigmasını rutin olarak övtüğünü ve her şeyin değişmez olmasının ne kadar iyi olduğunu vurguladığını okuyorum ve duyuyorum. Özellikle, insanlar bu yaklaşımı C #, Java veya C ++ gibi geleneksel olarak zorunlu OO dillerinde bile, sadece programcıya zorlayan Haskell gibi tamamen işlevsel dillerde önermektedir. Anlamakta …


3
Temel Sınıfta Programcıyı Tanımlamaya Zorlamak İçin Soyut Özellik
Gömülü bir cihaz için durum modeliyle kod yazıyorum. Devlet adında bir temel / soyut sınıfım var ve sonra her ayrık (somut) devlet sınıfı soyut Devlet Sınıfını uygular. Devlet Sınıfında birkaç Soyut Metot var. Ayrık (somut) sınıfta soyut yöntemleri uygulamazsanız, Visual Studio böyle bir hata verir: ... Hata 1 'myConcreteState' devralınan …

1
Delphi Pascal'da MVVM ve MVC uygulamak için en iyi uygulamalar
Ben bir Delphi pascal programcısıyım, en yeni Embarcadero delphi XE kullanıyorum ve Model görünümü denetleyicisi ve model görünümü görünümü-modeli gibi tasarım desenlerinden yararlanmak istiyorum. Bununla birlikte, web'de bunu pascal olarak yapmak için en iyi uygulamalar hakkında fazla bir şey yok gibi görünüyor. Bulabildiğim örneklerin çoğu C #'da ve dil özelliklerinden …


2
Head First Design Patterns'in Duck örneğinde gösterildiği gibi bağlam mirası, strateji modeliyle alakasız mı?
In Head First Design Patterns o öğretir strateji deseni Duck farklı alt sınıfları zamanında belirli bir davranışı atanabilecek bir ördek örneği kullanarak. Anladığım kadarıyla, strateji modelinin amacı, çalışma zamanında tek bir nesnenin davranışını değiştirmek , ancak çeşitli Duck türlerinin davranışlarını değiştirmek için Duck'ın mirasını kullanıyorlar. Uygunluk? Ördek'in bağlamsal mirası, strateji …

4
Kütüphane ayrımına izin verirken polimorfik davranış için tasarım deseni
Diyelim ben bir hiyerarşi var ki Itemsınıflar: Rectangle, Circle, Triangle. Onları çizmek istiyorum, bu yüzden ilk olasılık Draw()her birine sanal bir yöntem eklemek : class Item { public: virtual ~Item(); virtual void Draw() =0; }; Ancak, Çekirdek kitaplığı yalnızca temel gösterimleri içerirken çizim işlevselliğini ayrı bir Draw kitaplığına bölmek istiyorum. …

3
Tasarım kalıplarını ve yeniden düzenlemeyi kasıtlı olarak nasıl uygulayabilirim? [kapalı]
Kapalı. Bu soru konu dışı . Şu anda cevapları kabul etmiyor. Bu soruyu geliştirmek ister misiniz? Soruyu Yazılım Mühendisliği Yığın Değişimi için konuyla ilgili olacak şekilde güncelleyin . 4 yıl önce kapalı . Kalıpları yeniden düzenleme kitabını okuyordum ve becerileri uygulama şansını nasıl elde edebileceğimi merak ediyordum, çünkü kalıpları yeniden …

5
En İyi Uygulama - İşlev çağrısı etrafında sarma vs Muhafaza işlevinde ise erken çıkış ekleme
Bunun çok kullanışlı-duruma özgü olabileceğini biliyorum, ama kendimi bunu çok sık merak ediyorum. Genel olarak tercih edilen bir sözdizimi var mı? Bir işlevdeyken en iyi yaklaşımın ne olduğunu sormuyorum, erken çıkmam mı yoksa işlevi çağırmamam gerektiğini soruyorum. Wrap eğer etrafında işlev çağrısı if (shouldThisRun) { runFunction(); } Var ise ( …

2
Havuz Kalıbı ve DAL Nesnesi Oluşturma
Bildiğim kadarıyla IRepositoryiçermelidir CRUD. Sonra bu miras IRepositorygibi diğer Interfaces IProductve uygulamak IProductbeton sınıfı ProductRepositorygibi yöntemlerle, GetAllProducts(), Top5Products(). Aynı şeyi n katmanlı mimari ile de yapabiliriz. Gibi, Oluşturma DAL Class Libraryve içinde , Productgibi yöntemlerle bir sınıf tanımlar .GetAllProducts()Top5Products() İkisinde de DAL.Productve Repo.ProductRepositorybiz başlatmak sınıfların DB Contextarasında Entity Frameworkve ilgili …

3
Değerin ilettiği parametrelerin değerlerini değiştirmemenin bir nedeni var mı?
Bir fonksiyonun gövdesindeki by-value parametrelerinin değerlerini değiştirmeye karşı veya ona karşı nesnel, desteklenebilir yazılım mühendisliği argümanları var mı? Ekibimde tekrar eden bir tükürük (çoğunlukla iyi eğlenceler), değere göre iletilen parametrelerin değiştirilip değiştirilmeyeceği. Ekibin birkaç üyesi, parametrelere asla atanmaması gerektiği konusunda kararlıdır, böylece fonksiyona başlangıçta iletilen değer her zaman sorgulanabilir. Ben …

1
Desenler yapı taşları değildir - bu yüzden MVC / MVP desenleri üzerinde bir uygulama oluşturmamalıyım?
Bu sayfayı tasarım modelleri ve kodunuzu yazarken nasıl ele almanız gerektiği hakkında okudum . Anladığım kadarıyla, bağlantıdaki başlığın belirttiği gibi: Desenler yapı taşları değildir. Doğru anlarsam, bu bir tasarım deseni kullanmanın mantıklı olana kadar kullanılmaması anlamına gelir, değil mi? Strateji Desenini kullanacağınızı söylemeye başlamayın, bir kod yazana kadar bekleyin ve …

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.