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

6
Aşağıdaki kod snippet'inden çok / if-if dan kaçmanın en iyi yolu nedir?
Ben girdi olarak geçti "eylem" değerine dayalı görev yapan bir sunucu uygulaması yazmaya çalışıyorum. İşte örneği public class SampleClass extends HttpServlet { public static void action1() throws Exception{ //Do some actions } public static void action2() throws Exception{ //Do some actions } //And goes on till action9 public void doPost(HttpServletRequest …

5
Demeter yasasına göre, bir sınıf üyelerinden birini iade edebilir mi?
Demeter yasasıyla ilgili üç sorum var. Fabrika ve inşaatçı sınıfları gibi nesneleri döndürmek için özel olarak atanan sınıflar dışında, bir nesnenin, örneğin sınıfın özelliklerinden biri tarafından tutulan bir nesnenin veya demeter yasasını ihlal eden bir nesnenin döndürülmesi uygun mudur (1) ? Demeter yasasını ihlal ederse, geri döndürülen nesnenin bir veri …

2
Enjekte edilemeyen kodu nasıl test edersiniz?
Bu yüzden tüm sistemde aşağıdaki kod parçası var. Şu anda birim testleri geriye dönük olarak yazıyoruz (benim argümanımdan daha geç değil), ama bunun nasıl test edilebileceğini anlamıyorum? public function validate($value, Constraint $constraint) { $searchEntity = EmailAlertToSearchAdapter::adapt($value); $queryBuilder = SearcherFactory::getSearchDirector($searchEntity->getKeywords()); $adapter = new SearchEntityToQueryAdapter($queryBuilder, $searchEntity); $query = $adapter->setupBuilder()->build(); $totalCount = $this->advertType->count($query); …

1
Veritabanındaki alan modelleri sürdürülebilir bir çözüm olabilir mi?
Microsoft teknolojisine dayanan orta-küçük ölçekli bir şirket için veritabanı geliştirici olarak yeni bir işe başladım. En iyi uygulamalar, tasarım modelleri, testler ve proje yönetimi ile ilgili olarak okulda öğretilenlerden ne kadar uygulama saptığının farkına vardım. Beni en çok rahatsız eden şey, ana veritabanı geliştiricimizin (bundan böyle "John" olarak anılacaktır) model …

3
Belirli koşullarda programcının dikkatini nasıl çekebilirim?
Bir örnekle başlayalım. Diyelim ki, exportağırlıklı olarak DB şemasına bağlı olarak adlandırılan bir yöntemim var . Ve “büyük ölçüde bağlıdır” derken, belirli bir tabloya sık sık (çok sık) yeni bir sütun eklemenin karşılık gelen exportyöntem değişikliğine yol açtığını biliyorum (genellikle yeni alanı dışa aktarma verilerine de eklemelisiniz). Programcılar genellikle exportyöntemi …

7
Koleksiyonlara öğe eklemenin daha “doğal” bir yolu var mı? [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 . 5 yıl önce kapalı . Bir koleksiyona bir şey eklemenin en yaygın yolunun, Addbir koleksiyonun sağladığı bir tür yöntemi kullanmak olduğunu düşünüyorum: …

6
Bağımlılık enjeksiyon çerçeveleri için argümanlardan birini sorgulamak: Nesne grafiği oluşturmak neden zor?
Google Guice gibi bağımlılık enjeksiyon çerçeveleri kullanımları için aşağıdaki motivasyonu sağlar ( kaynak ): Bir nesneyi oluşturmak için önce bağımlılıklarını oluşturursunuz. Ancak her bağımlılığı inşa etmek için bağımlılıklarına ihtiyacınız var vb. Bu nedenle, bir nesne oluşturduğunuzda, gerçekten bir nesne grafiği oluşturmanız gerekir. Elle nesne grafikleri oluşturmak emek yoğundur (...) ve …

2
Bir özellik veya yöntem olarak "hesaplanan" değeri göstermeli miyim?
Bir web içerik yönetim sisteminde bir içerik türünü temsil eden bir C # sınıfı var. Web içerik düzenleyicisinin, nesnenin nasıl görüntülendiğine ilişkin bir HTML şablonu girmesine izin veren bir alanımız var. Temel olarak nesne özellik değerlerini HTML dizesine koymak için gidon sözdizimini kullanır: <h1>{{Title}}</h1><p>{{Message}}</p> Sınıf tasarımı açısından, biçimlendirilmiş HTML dizesini …

2
Komutun kendisinde yöntem yerine neden CommandHandler sınıfını Handle () ile ayırın
S # arp mimarisi kullanarak böyle uygulanan CQRS desen bir parçası var : public class MyCommand { public CustomerId { get; set; } // some other fields } public class MyCommandHandler<MyCommand> : ICommandHandler<MyCommand, CommandResult> { Handle(MyCommand command) { // some code for saving Customer entity return CommandResult.Success; } } Neden …

4
Raylar: Demeter Karışıklık Kanunu
Rails AntiPatterns adlı bir kitap okuyorum ve Demeter Yasasını çiğnemekten kaçınmak için delegasyondan bahsediyorlar. İşte onların en iyi örneği: Denetleyicide böyle bir şey çağırmanın kötü olduğuna inanıyorlar (ve katılıyorum) @street = @invoice.customer.address.street Önerilen çözümleri aşağıdakileri yapmaktır: class Customer has_one :address belongs_to :invoice def street address.street end end class Invoice has_one …

3
Bağımlılık Tersine Çevirme İlkesi: “Üst düzey politika” ve “düşük düzey detay” diğer insanlara nasıl tanımlanır?
Bağımlılık tersine çevirme prensibini (çoğunlukla genç) meslektaşlarıma anlatmaya çalışıyorum. Hangisinin bir yazılımda "yüksek düzeyli politika" hangisinin "düşük düzeyli ayrıntı" olduğunu nasıl tanımlayabiliriz? Örneğin, yazılımımız birkaç iş uygulamasının iş akışını otomatik hale getirirse, neden iş akışı otomasyonunun üst düzey politika olduğunu ve iş uygulamalarının ayrıntılar olduğunu söylüyoruz?

3
Bir hikayeyi anlatmak için birim testleri kullanmak iyi bir fikir mi?
Bu yüzden, bir süre önce yazdığım bir doğrulama modülüm var. Şimdi yolumdaki hataları görüyorum ve bunun için birim testleri yazıyorum. Birim testleri yazarken, iyi isimler ve test edilecek iyi alanlar bulmakta zorlanıyorum. Mesela benim gibi şeylerim var RequiresLogin_should_redirect_when_not_logged_in RequiresLogin_should_pass_through_when_logged_in Login_should_work_when_given_proper_credentials Şahsen, "uygun" görünse de biraz çirkin olduğunu düşünüyorum. Ben de …

2
Büyük fonksiyonel programlama uygulamaları oluşturmak için yaygın olarak kullanılan belirli iş akışları veya tasarım modelleri var mı? [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 . 4 yıl önce kapalı . Önemsiz projelerde kullanmadığım halde Clojure'u bir süredir araştırıyorum. Temel olarak, sözdizimi ve bazı deyimlerle …

4
Tasarım Deseni'nin doğru bir şekilde uygulanıp uygulanmadığı nasıl belirlenir?
Belgelenmiş Tasarım Desenleri kullanmayan tüm eski uygulamalarımı başarıyla ölçeklendirebiliyorum. Hangi desen olursa olsun bilmiyorum. Büyük ölçüde, sadece basit OOP kavramlarını kullanma ihtiyacı duydum. Tasarım Desenleri kavramı karmaşıktır ve anlaşılması zordur. Uygulandığında, uygulamanın doğru olup olmadığı ve uygulamanın gerçek gevşek bağlantıya sahip olup olmadığı nasıl belirlenir?

3
Sistem hatalarını ortaya çıkarma / tolere etme / kurtarmaya bir tasarım deseni / yaklaşımı, Özel durum işleme (Java'daki egs, C ++, Perl, PHP) önerme
Sistem hatalarını, Özel Durum işlemeyi (Java, C ++, Perl, PHP) ortaya çıkarmak / tolere etmek / kurtarmak için bir tasarım deseni / yaklaşımı önerebilir misiniz? Bazı hataların bildirilmesi gerekir. Bazı hatalar dahili olarak ele alınabilir (yeniden deneme yoluyla veya önemsizdir (yok sayılabilir). Kodu yakalamak için nasıl yapılandırıyorsunuz? Ancak tüm hataların …

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.