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


16
En sık kullanılan tasarım deseni nedir? [kapalı]
Şu anda olduğu gibi, bu soru bizim soru-cevap formatımız için uygun değil. Yanıtların gerçekler, referanslar veya uzmanlık tarafından desteklenmesini bekliyoruz, ancak bu soru muhtemelen tartışma, tartışma, oylama veya genişletilmiş tartışmalar gerektirecektir. Bu sorunun iyileştirilebileceğini ve yeniden açılabileceğini düşünüyorsanız, rehberlik için yardım merkezini ziyaret edin . 8 yıl önce kapandı . …

2
Bir inşaatçı neden kendi sınıf dosyasında bir iç sınıf olmak zorunda?
Birçok Builder Patternörnek Builder, oluşturduğu nesnenin iç sınıfını oluşturur. Bu ne Builderinşa ettiğini gösterir, çünkü biraz mantıklı . Ancak, statik olarak yazılmış bir dilde neyin Builderinşa edildiğini biliyoruz . Öte yandan Builderbir iç sınıftır, sen gerektiğini hangi sınıf bilmek Builderiçini bakmadan oluşturur Builder. Ayrıca, kurucuyu iç sınıf olarak bulundurmak, dış …

5
Yapıcıdaki ayarlayıcıları kullanmak neden yaygın bir kalıp haline gelmedi?
Erişimciler ve değiştiriciler (aka ayarlayıcılar ve alıcılar) üç ana nedenden dolayı faydalıdır: Değişkenlere erişimi kısıtlarlar. Örneğin, bir değişkene erişilebilir, ancak değiştirilemez. Parametreleri doğrularlar. Bazı yan etkilere neden olabilirler. İnternetteki üniversiteler, çevrimiçi kurslar, dersler, blog yazıları ve kod örnekleri, erişim sağlayıcıların ve değiştiricilerin önemi konusunda strese giriyor; Böylece kişi, aşağıdaki kod …

6
Bir sınıfın kendi genel yöntemini kullanması uygun mudur?
Arka fon Şu anda ben bir var bir durum var nesneyi hem bir cihaz tarafından iletilen ve alınır. Bu mesajın aşağıdaki gibi birkaç yapısı var: public void ReverseData() public void ScheduleTransmission() ScheduleTransmissionYöntem ihtiyacı aramaya ReverseDatadenir her yöntemi. Ancak, nesnenin uygulamada başlatıldığı yerden ReverseDataharici olarak aramam gereken (ve ad alanının dışına …

4
Bir kurucuda meşru "gerçek iş"?
Bir tasarım üzerinde çalışıyorum, ancak bir barikatı vurmaya devam ediyorum. Temelde bir XML şema ayrıştırma (DOM DOM) tarafından oluşturulan karmaşık bir düğüm ağacının sahibi olan belirli bir sınıf (ModelDef) var. İyi tasarım ilkelerini (SOLID) takip etmek ve ortaya çıkan sistemin kolayca test edilebilir olmasını sağlamak istiyorum. Bağımlılıkları ModelDef'in yapıcısına iletmek …

3
Servis katmanı tüm özel istisnaları yakalamalı ve servis istisnası olarak sarmalı mı?
Üç katmanlı Spring web uygulamasına sahibim: dao, servis ve kontrolörler. Bir denetleyici hiçbir zaman doğrudan dao'yu çağırmaz, hizmet katmanı üzerinden yapar. Şu anda, çoğunlukla işlenmeyen bir dao istisnası (çalışma zamanı) varsa, son kullanıcıya bir hata mesajı gösteren bir JSP tarafından yakalanır. Servis katmanı tüm özel istisnaları yakalayıp bunları servis istisnaları …

2
Veri Doğrulama için Tasarım Deseni
Bu problem için en iyi tasarım deseni ne olurdu: Bir Nesne A'ya sahibim. Nesne A, kullanıcı isteğine bağlı olarak veritabanından kaydedilebilir veya silinebilir. Veri doğrulama, nesnenin kaydedilmesinden veya silinmesinden önce gerçekleştirilir. Nesne kaydedilmeden önce kontrol edilecek bir takım kurallar ve silmeye yönelik başka bir takım kurallar vardır. Bu kuralların bazıları …

5
başarı: / başarısız: bloklar vs tamamlanma: blok
Objective-C'de bloklar için iki ortak kalıp görüyorum. Biri bir çift başarıdır: / failure: blocks, diğeri ise tek bir tamamlamadır: block. Örneğin, bir nesneyi eşzamansız olarak döndürecek bir görevim olduğunu ve bu görevin başarısız olabileceğini varsayalım. İlk örnek olan -taskWithSuccess:(void (^)(id object))success failure:(void (^)(NSError *error))failure. İkinci desen -taskWithCompletion:(void (^)(id object, NSError …

11
Banka dünyasında kod tasarım çabasını veya tembelliği seçin
İki yıl boyunca harika bir Yatırım Bankasında çalıştım. En iyi şekilde kod yaratma arzusuyla, uyarlanmış iyi tasarım modellerine saygı göstererek, SOLID ilkesini, silgi yasasını ve her türlü çift koddan kaçınmayı ... Üretimde teslimat => sıfır hata olduğunda, tümü beklendiği gibi oldu. Ancak, tüm kodlarımın okuduğunu anlama için çok karmaşık olduğunu …

8
"Kullan" anahtar kelimesini kullanırken DRY prensibi nasıl uygulanır?
Bu yöntemleri göz önünde bulundurun: public List<Employee> GetAllEmployees() { using (Entities entities = new Entities()) { return entities.Employees.ToList(); } } public List<Job> GetAllJobs() { using (Entities entities = new Entities()) { return entities.Jobs.ToList(); } } public List<Task> GetAllTasksOfTheJob(Job job) { using (Entities entities = new Entities()) { return entities.Tasks.Where(t => …

5
Başka bir popüler dil, Java / Java EE'deki ile aynı karmaşıklığı yönetirken fabrika şablonunu kullanmak zorunda kalmayı nasıl önlerdi?
Fabrika desen (veya en azından kullanım FactoryFactory..) gibi birçok alay konusu olmuştur burada . RequestProcessorFactoryFactory.RequestProcessorFactory gibi ayrıntılı ve "yaratıcı" adlara sahip olmasının yanı sıra, Java / C ++ dilinde programlamak zorundaysanız ve Abstract_factory_pattern için bir usecase varsa, fabrika modelinde temelde yanlış bir şey var mı? Başka bir popüler dil (örneğin, …

8
Builder deseninin ekibimde kullanımını nasıl teşvik edebilirim?
Bizim kod temeli eski ve yeni programcılar, benim gibi, hızla bunu yapmak öğrenmektir bitti yolu bütünlüğü uğruna. Bir yerden başlamak zorunda olduğumuzu düşünerek, bir veri tutucu sınıfını yeniden yansıtmak için kendime verdim: Setter yöntemleri kaldırıldı ve tüm alanları yaptım final(aldığım final"aksiyomatik olarak " iyidir ") Belirleyiciler, yalnızca kurucuda kullanıldı, göründüğü …

6
Gevşek kavrama kasası anti-patern kullanıyor mu?
Gevşek kavrama, bazı geliştiricilere, iyi tasarlanmış bir yazılımın kutsal kâsesidir. Öngörülebilir gelecekte gerçekleşmesi muhtemel değişiklikler karşısında kodu daha esnek hale getirdiğinde ya da kod çoğaltmasını engellediğinde kesinlikle iyi bir şeydir. Öte yandan, bileşenlerin gevşek bir şekilde bağlanma çabaları bir programdaki dolaylılık miktarını arttırır, böylece karmaşıklığı arttırır, bu da çoğu zaman …

4
İşlevsel Programlama bağımlılık enjeksiyon kalıplarına uygulanabilir bir alternatif midir?
Geçenlerde C # 'da İşlevsel Programlama başlıklı bir kitap okudum ve bana göre işlevsel programlamanın değişmez ve vatansız doğası bağımlılık enjeksiyon modellerine benzer sonuçlar elde ediyor ve muhtemelen özellikle birim test konusunda daha iyi bir yaklaşım. Her iki yaklaşımla da deneyimi olan birisinin, asıl soruya cevap vermek için düşüncelerini 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.