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

2
Bağımlılık enjeksiyonuyla yapılandırmayı nasıl yönetirsiniz?
Ben DI / IOC'un büyük bir hayranıyım. Zor bağımlılıkları ele almak / soyutlamak için harikadır ve hayatı biraz daha kolaylaştırır. Bununla birlikte, nasıl çözüleceğinden emin olmadığım küçük bir yakınma var. DI / IOC'deki temel fikir, bir nesne başlatıldığında, tüm bağımlılıklarının yapıcı içinde önceden doldurulmuş olmasıdır. Bununla birlikte, IMHO yapıcılar için …

3
Web sitesi iş akışı nasıl tasarlanır?
Bunu en iyi cevaba ulaşmadan gerçekten uzun zamandır düşünüyorum. Her şeyden önce, ev öğrenimi ve boş zamanlarımda kodla uzun yıllar boyunca oynamak dışında, programlamayı seven ama gerçekten hiç çalışmamış bir tıp doktoruyum. Şu anda kliniğimi yönetmek için küçük bir proje yapmaya çalışıyorum, bunu yapmaya başlamak istediğim seçeneklerin bir listesini oluşturdum. …


3
Dekoratör tasarım desen hakkında yeni soru
Bir programlama makalesi okuyordum ve Dekoratör modelinden bahsetti. Bir süredir program yapıyorum ama herhangi bir örgün eğitim ya da eğitim almadım, ama standart kalıpları ve benzerlerini öğrenmeye çalışıyorum. Dekoratöre baktım ve üzerinde bir Wikipedia makalesi buldum . Şimdi Dekoratör deseni kavramını anlıyorum, ancak bu pasajla biraz karıştım: Örnek olarak, bir …

5
MVC neden PAC'den daha popüler? [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 . 4 yıl önce kapalı . Sadece bir soru üzerine tökezledi SO hakkında PAC ve desen ilgilenen var. Neden MVC kadar yaygın olarak …

1
Pompanın doldurulması nedir? Bazen başlangıç ​​okuma olarak adlandırılır
Bana bu ifadeyi ve deseni gün içinde öğretti. Tabii, adı su pompalayabilmeden önce suyla doldurulması gereken eski pompalardan geliyor, ama kimin umurunda? Burada koddan bahsediyoruz. Bazı gerçekten iyi örnekler ve modelin neyi başardığına dair bir açıklama memnuniyetle karşılanacaktır. Bu kalıp bugün nasıl değerlendiriliyor? Hazırlama işlemi bazen arızalı bir döngüyü çalıştırabilir, …

2
En az şaşkınlık (POLA) ve arayüzler ilkesi
C ++ öğreniyorken yüzyılın iyi bir çeyreği, arayüzlerin affedici olması ve mümkün olduğunca tüketicilerin kaynak veya belgelere erişemeyeceği için yöntemlerin çağrıldığı sırayı umursamayacağı öğretildi. bu. Ancak, ne zaman genç programcılara ve kıdemli geliştiricilere beni kulak misafiri olduysa, bunun gerçekten bir şey olup olmadığını veya modası geçmiş olup olmadığını merak ettim. …

5
Numaralamalar kırılgan arayüzler yaratıyor mu?
Aşağıdaki örneği düşünün. ColorChoice enum öğesinde yapılan tüm değişiklikler tüm IWindowColor alt sınıflarını etkiler. Numaralamalar kırılgan arayüzlere neden olma eğiliminde mi? Daha polimorfik esnekliğe izin vermek için bir numaradan daha iyi bir şey var mı? enum class ColorChoice { Blue = 0, Red = 1 }; class IWindowColor { public: …

4
Tek Sorumluluk İlkesi işlevler için geçerli midir?
Robert C. Martin'e göre, SRP şunları söylüyor: Bir sınıfın değişmesi için asla birden fazla sebep olmamalıdır . Bununla birlikte, Temiz Kod , bölüm 3: İşlevler kitabında aşağıdaki kod bloğunu gösterir: public Money calculatePay(Employee e) throws InvalidEmployeeType { switch (e.type) { case COMMISSIONED: return calculateCommissionedPay(e); case HOURLY: return calculateHourlyPay(e); case SALARIED: …

7
Yazılım Tasarım Desenlerini kullanmayacaksam ne olur? [kapalı]
Kapalı . Bu sorunun daha fazla odaklanması gerekiyor . Şu anda cevapları kabul etmiyor. Bu soruyu geliştirmek ister misiniz? Soruyu yalnızca bu yayını düzenleyerek tek bir soruna odaklanacak şekilde güncelleyin . 6 yıl önce kapalı . Yazılım Tasarım Desenlerini kullanmayacaksam ne gibi sorunlarla karşılaşabilirim? Bana tasarıma standart nesne yönelimli teknikler …

8
Bağımlılık Enjeksiyonu UnitTesting dışında buna değer mi?
Asla, başlattığı çeşitli nesnelerin farklı uygulamalarını kullanmak zorunda kalmayacak bir yapıcı göz önüne alındığında, DI'yi kullanmak hala pratik mi? Sonuçta, yine de birim testi yapmak isteyebiliriz. Söz konusu sınıf yapıcısında birkaç sınıf daha başlatır ve kullandığı sınıflar oldukça belirgindir. Asla başka bir uygulama kullanmayacaktır. Bir arayüze program yapmaya çalışmaktan kaçınmamız …

3
Durum Paterni Liskov İkame İlkesini ihlal ediyor mu?
Bu görüntü Etki Alanına Dayalı Tasarım ve Desenler Uygulamadan alınmıştır : C # ve .NET'teki Örneklerle Bu sınıf diyagramı olan Devlet Kalıbı bir SalesOrderyaşam süresi boyunca farklı durum olabilir. Farklı durumlar arasında sadece belirli geçişlere izin verilir. Şimdi OrderStatesınıf bir abstractsınıftır ve tüm yöntemleri alt sınıflarına devralınır. Başka Cancelledbir ülkeye …

1
Liskov İkame Prensibi arayüz uygulayan sınıflar için de geçerli mi?
LSP, sınıfların temel sınıfları için ikame edilmesi gerektiğini, yani türetilen ve taban sınıfların anlamsal olarak eşdeğer olması gerektiğini belirtir. Peki LSP bir arayüz uygulayan sınıflar için de geçerli mi? Başka bir deyişle, bir sınıf tarafından uygulanan bir arabirim yöntemi , kullanıcının onun beklediğinden anlamsal olarak farklıysa, bu LSP'nin ihlali olarak …

2
Depo ve İş Birimi Arasındaki İlişki
Bir depo uygulayacağım ve deponun tüketicisi birkaç işlem yapabileceğinden UOW modelini kullanmak istiyorum ve aynı anda taahhüt etmek istiyorum. Konuyla ilgili birkaç makaleyi okuduktan sonra, hala başka bir şekilde yapıldığı makaleye bağlı olarak, bu iki öğeyi nasıl ilişkilendireceğim. Bazen UOW depodaki dahili bir şeydir: public class Repository { UnitOfWork _uow; …

6
Denetleyicilerinizde SQL'den kaçınma stratejileri… veya Modellerimde kaç yöntem kullanmalıyım?
Dolayısıyla, oldukça sık karşılaştığım bir durum, modellerimin ikisinden birinin başladığı durumdur: Tonlarca ve tonlarca yöntemle canavarlara dönüş VEYA Onlara SQL parçaları geçirmenize izin verin, böylece bir milyon farklı yöntem gerektirmeyecek kadar esnekler. Örneğin, bir "widget" modelimiz olduğunu varsayalım. Bazı temel yöntemlerle başlıyoruz: olsun ($ id) insert ($ kayıt) 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.