«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.

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 { …

2
Yayınlama-abone olma paterninin gotos'tan farkı nedir?
Anladığım kadarıyla, Goto ifadeleri genellikle kaşlarını çattı . Ancak yayınlama-abone olma modeli , bir kod parçası bir mesaj yayınladığında, tek yönlü bir kontrol aktarımı gerçekleştirmesi bakımından kavramsal olarak benzer görünmektedir. Programcı, programın hangi bölümlerinin bu mesaja abone olduğunu bilmiyor olabilir. Bir çok JavaScript programında benzer bir şey gördüm, burada olaylar …

1
MVC + 3 katmanı; ViewModels nerede devreye giriyor?
ASP.NET MVC 4 kullanarak 3 katmanlı bir uygulama tasarlıyorum. Referans olarak aşağıdaki kaynakları kullandım. CodeProject: MVC + N katmanı + Varlık Çerçevesi ASP.NET MVC'de veri erişimini ayırma Şimdiye kadar aşağıdaki tasarımlarım var. Sunum Katmanı (PL) (ana MVC projesi, E ve MVC veri erişim katmanı taşındı): MyProjectName.Main Views/ Controllers/ ... İş …


4
Komut deseni tasarımı
Komut modelinin bu eski uygulamasına sahibim. Bu, tüm DIOperation uygulaması boyunca bir Bağlamdan geçmektir , ancak daha sonra, öğrenme ve öğrenme sürecinde (asla durmaz), bunun optimal olmadığını fark ettim. Ben de burada "ziyaret" gerçekten uygun olmadığını ve sadece karışık olduğunu düşünüyorum. Aslında benim kodumu yeniden düzenlemeyi düşünüyorum, çünkü bir Komut …


3
Efferent / Afferent kuplaj ne zaman iyi veya kötü
Bu hafta yazılım kalıpları sınavım var ve üzerinde çalışacağımız konulardan biri de Efferent ve Afferent coupling. Bir paketin başka türlere bağlıysa yüksek bir Ce (efferent kuplajı) olduğunu anlıyorum. Örneğin: class Car{ Engine engine; Wheel wheel; Body body; } Bu sınıf, Motor, Tekerlek ve Gövde tiplerine bağlı olduğu için yüksek verimli …


8
Dil yapılarına neden tasarım kalıpları eklenmiyor?
Son zamanlarda, şirketinin bir PHP uzantısı olarak MVC tasarım modelini eklemek için çalıştığını belirten bir meslektaşımla konuşuyordum. Controllers, Models and ViewsPerformansı artırmak için dil yapılarına eklemek üzere C kodu yazdıklarını açıkladı . Şimdi MVC'nin web uygulamalarında yaygın olarak kullanılan bir mimari tasarım deseni olduğunu biliyorum, ancak yine de örneğin Denetleyiciler …


4
Kapsülleme aşırı kullanımından muzdarip miyim?
Çeşitli projelerde kodumda bana kod kokusu ve yapmak kötü bir şey gibi görünen bir şey fark ettim, ancak bununla başa çıkamıyorum. "Temiz kod" yazmaya çalışırken, kodumu okumayı kolaylaştırmak için özel yöntemleri aşırı kullanma eğilimindeyim. Sorun kod gerçekten daha temiz ama aynı zamanda test etmek daha zor (evet biliyorum özel yöntemleri …

2
'Sonuç'u' durumdan 'ayırmanın avantajları nelerdir?
Diyelim ki genel olarak aşağıdaki durumlardan geçen bazı otomatik süreçleriniz var; zamanlanmış - başlatıldı - doğrulama - yürütme - tamamlandı Bunun da ötesinde, bu işlemler bir hata veya açık bir kullanıcı iptali nedeniyle zamanından önce sona erebilir. Benim ilk dürtü basitçe eklemektir hatayı ve iptal olası durum değerleri listesine ama …

4
Yineleyicinin yıkıcı olmayan zımni bir sözleşmesi var mı?
Diyelim ki bir yığın veya kuyruk gibi özel bir veri yapısı tasarlıyorum (örneğin - mantıksal eşdeğeri pushve popyöntemleri - yani yıkıcı erişimci yöntemleri) başka bir rasgele sıralı koleksiyon olabilir . IEnumerable<T>Her bir yinelemede ortaya çıkan bu koleksiyon üzerinde bir yineleyici (özellikle .NET'te ) uyguluyorsanız, bu IEnumerable<T>zımni sözleşmeyi bozar mıydı? Does …

3
CRTP çok mu kullanılıyor? ve neden / değil? [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 . 6 yıl önce kapalı . Merakla yinelenen şablon desenini düşünüyorum . Oldukça kullanışlı buluyorum ve birçok görev için oldukça iyi ayarlanabilir. Ama …

6
Tek Sorumluluk İlkesi ile Mücadele
Bu örneği düşünün: Bir web sitem var. Kullanıcıların yayın yapmasına (herhangi bir şey olabilir) ve yayını tanımlayan etiketler eklemesine olanak tanır. Kodda, yazı ve etiketleri temsil eden iki sınıf var. Bu sınıflara Postve diyelim Tag. Postyayın oluşturma, yayınları silme, yayınları güncelleme, vb. ile Tagilgilenir. etiket oluşturma, etiketleri silme, etiketleri güncelleme …

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.