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

4
C # 6.0'ın yeni boş koşullu operatörü Demeter Yasasına aykırı mı?
Demeter Kanunu şöyle der: Her ünite diğer üniteler hakkında sadece sınırlı bilgiye sahip olmalıdır: sadece mevcut ünite ile ilgili "yakından" olan üniteler. Her birim sadece arkadaşlarıyla konuşmalıdır; yabancılarla konuşma. Sadece yakın arkadaşlarınızla konuşun. C # 6.0 boş koşullu işleç adı verilen yeni bir işleç başlattı . IMHO, kodlamayı kolaylaştırır ve …

11
Kaç tasarım deseni ve soyutlama seviyesi gereklidir? [kapalı]
Yazılımımın çok fazla soyutlama ve çok fazla tasarım desenine sahip olduğunu nasıl söyleyebilirim, ya da tam tersi, daha fazlasına sahip olup olmadığını nasıl bilebilirim? Çalıştığım geliştiriciler bu konularla ilgili farklı programlama yapıyorlar. Bazıları her küçük işlevi soyutlar, mümkün olan yerlerde tasarım kalıplarını kullanır ve herhangi bir maliyette fazlalıktan kaçınır. Ben …

8
Kod ve verilerin ayrılması nasıl pratik hale geldi?
Lütfen soruyu dikkatlice okuyunuz: nasıl olduğunu değil nedenini sorar . Yakın zamanda bu cevaba rastladım , ki bu değişken veriyi saklamak için bir veritabanı kullanmayı önerir: Tanımladığınız sihirli sayıların birçoğuna benziyor - özellikle kısmen bağımlıysa - gerçekten kod, kod değil. [...] Bir SQL tipi veritabanı anlamına gelebilir veya yalnızca biçimlendirilmiş …

6
İşlevselliğe belirli işlevler çıkarmalı mıyım ve neden?
Her biri ayrı bir işleve çıkartılabilen 3 görev yapan büyük bir yöntemim var. Bu görevlerin her biri için ek işlevler yaparsam kodumu daha iyi veya daha kötü duruma getirir mi ve neden? Açıkçası, ana işlevde daha az kod satırı yapacaktır, ancak ek işlev bildirimleri olacak, bu yüzden sınıfımın iyi olmadığına …


6
Bayrakları kontrol etme ihtiyacını ortadan kaldırmak için bir tasarım deseni var mı?
Veritabanında bazı string loadload'ları biriktireceğim. İki global konfigürasyonum var: şifreleme sıkıştırma Bunlar konfigürasyon kullanılarak, her ikisinin de etkinleştirildiği veya her ikisinin de devre dışı bırakıldığı şekilde etkinleştirilebilir veya devre dışı bırakılabilir. Mevcut uygulamam şudur: if (encryptionEnable && !compressEnable) { encrypt(data); } else if (!encryptionEnable && compressEnable) { compress(data); } else …

14
Sınıf hiyerarşisindeki nesne davranışının veya özelliklerinin * kaldırılmasını * sağlayan bir dil veya tasarım deseni var mı?
Geleneksel sınıf hiyerarşilerinin iyi bilinen bir eksikliği, gerçek dünyayı modelleme söz konusu olduğunda onların kötü olmalarıdır. Örnek olarak, hayvan türlerini sınıflarla temsil etmeye çalışmak. Bunu yaparken aslında birkaç problem var, ama bir çözüm görmedim, bir alt sınıfın uçamayan bir penguen gibi bir süper sınıfta tanımlanmış bir davranışı veya mülkü "kaybetmesi" …

12
Hangi tasarım desenleri en kötü veya en dar tanımlanmıştır? [kapalı]
Her programlama projesi için geçmiş programlama deneyimine sahip yöneticiler, projeniz için bazı tasarım desenleri önerdiklerinde parlamaya çalışırlar. Tasarım kalıplarını anlamlı bulduklarında veya ölçeklenebilir bir çözüme ihtiyaç duyduğunuzda seviyorum. Örneğin, Proxy'leri, Gözlemcileri ve Komut örneklerini olumlu bir şekilde kullandım ve bunu her gün yapıyorum. Ancak, bir nesneyi yaratmanın tek bir yolu …

4
Tasarım deseni adını uygulama sınıflarında kullanmak hiç iyi bir fikir miydi? [kapalı]
Son zamanlarda bir sürü orta derecede büyük piton kod temeli geldi MyClassAbstractFactory, MyClassManager, MyClassProxy, MyClassAdaptervb sınıfları. Bir yandan o isimler araştırma ve ilgili kalıplarını öğrenmek için beni işaret ederken, onlar sınıf ne çok açıklayıcı değildi yapar . Ayrıca, kelimelerin yasak listesi içinde düşmek gibi görünüyor programlama: variable, process_available_information, data, amount, …

2
Role Dayalı REST API?
Farklı rollere sahip birkaç kullanıcının içerdiği kaynaklara erişebileceği bir REST API'si yapıyorum. Kapsamı basit tutmak için “öğrenci / öğretmen / sınıf” etki alanını ele alalım: GET /students erişmek için kaynaktır. Kullanıcıların Öğrenci ve / veya Öğretmen gibi rolleri olabilir. Öğrenciler yalnızca sınıflarındaki öğrencilere erişebilecekler. Öğretmenler, öğrettikleri sınıftaki öğrencilere erişebileceklerdir. Bazı …

4
Mediator vs Observer?
Birisi bir arasındaki farklar hakkında bir kanonik cevaplarını bana sağlayabilir Observerve Mediatorve diğer üzerinden desen kullanmak gerekirken bir özeti? Ne tür bir durumun gerektirdiğinden Observerve ne tür bir durumun gerektireceğinden emin değilim.Mediator

9
Singleton desenine alternatifler
Singleton modeli hakkında farklı görüşler okudum. Bazıları, her ne pahasına olursa olsun kaçınılması gerektiğini, bazılarında ise belirli durumlarda yararlı olabileceğini savunuyor. Singletons kullandığım bir durum, belirli bir A sınıfının nesnelerini oluşturmak için bir fabrikaya (F tipi bir f nesnesi diyelim) ihtiyacım olduğu zamandır. A tipi başlatıldı. Böylece, A'yı başlatmak isteyen …

2
DDD - Toplayıcı kök depoları toplayıcıları kurtarıyor mu?
Mevcut bir uygulamanın greenfield modülü için DDD benzeri bir yaklaşım kullanıyorum; mimari nedeniyle% 100 DDD değil, ancak bazı DDD konseptlerini kullanmaya çalışıyorum. Ben sınırlı bir bağlam (O uygun terim olduğunu düşünüyorum - Hala DDD hakkında öğreniyorum) sahip iki varlıkları oluşan: Conversationve Message. Konuşma, bir ileti dizisi konuşma olmadan mevcut olmadığından …

5
NInject kullanarak bir fabrika kurmanın en iyi yolu nedir?
MVC3'te NInject kullanarak bağımlılık enjeksiyonunda oldukça rahatım. Bir MVC3 uygulamasında çalışırken, NInject kullanarak özel bir Denetleyici Oluşturma Fabrikası geliştirdim, böylece oluşturulan herhangi bir denetleyicinin bu Denetleyici Fabrikası aracılığıyla kendisine enjekte edilen bağımlılıkları olacaktır. Şimdi bir windows uygulaması geliştirmeye başladım, Application Wide Dependency Injection kullanmak istiyorum. Birim Testini kolaylaştırmak için her …

12
Bu kodlama yöntemini tanımlayan bir antipattern var mı? [kapalı]
Kapalı . Bu soru görüşe dayalı . Şu anda cevapları kabul etmiyor. Bu soruyu geliştirmek ister misiniz? Soruyu güncelleyin, böylece bu yayını düzenleyerek gerçekleri ve alıntıları yanıtlayabileceksiniz . 5 yıl önce kapandı . Programcının anlam ifade etmeyen alanlara işleri yerleştirme eğiliminde olduğu bir kod tabanına sahibim. Örneğin, bir Hata günlüğü …

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.