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

8
İlişkisel bir veritabanında tekil bir modellemenin en iyi yolu
Web uygulamaları için ilişkisel veritabanı şeması tasarlarken, genellikle bir satır ve yalnızca bir satır içerecek bir tablo oluşturduğum bir durum bulurum. Bunu tasarlamanın yanlış yolu gibi hissettiriyor, ancak önemli ölçüde daha iyi bir şey bulamıyorum veya açıkçası "bunu yapmanın doğru yolu". Yeni bir örnek, kullanıcıların ana sayfadaki içeriği manuel olarak …


3
Global istek bağlamı - anti-desen?
Bugün bir meslektaşımla Python web çerçeveleri ve onlar hakkındaki izlenimlerimiz hakkında konuşuyordum. Ona küresel bir isteği olan Flask'ın kötü koktuğunu ve bir anti-desen olduğunu düşündüğümü söyledim. Docs istek içeriği hakkında ki: Bunun aksine, istek işleme sırasında birkaç kural daha vardır: bir istek etkinken, bağlam yerel nesneleri (flask.request ve diğerleri) geçerli …

1
Ziyaretçi desenini büyük nesne hiyerarşisiyle kullanma
bağlam Nesnelerin bir hiyerarşisi (bir ifade ağacı) bir "sözde" ziyaretçi desen (sözde, çift gönderme kullanmaz gibi) ile kullanıyorum: public interface MyInterface { void Accept(SomeClass operationClass); } public class MyImpl : MyInterface { public void Accept(SomeClass operationClass) { operationClass.DoSomething(); operationClass.DoSomethingElse(); // ... and so on ... } } Ancak, MyInterface'in uygulama …

3
OOP'larda sınıf tasarımına nasıl yaklaşıyorsunuz?
Bir OO çözümü tasarlamaya çalıştığımda, genellikle sınıf adlarını (isimler), yaptıkları şeyi (fiiller) ve diğer sınıflarla nasıl işbirliği yaptıklarını listelediğim CRC modellemesini kullanıyorum . Bu blog , bu isim-fiil yaklaşımı hakkında söylenecek aşağıdaki şeylere sahiptir ...This approach, which I will call “noun and verb,” is so limited I’ll dare to call …

5
Açık-kapalı prensibinin avantajlarından yararlanıyor musunuz?
Açık-kapalı prensibi (OCP), bir nesnenin uzatma için açık, ancak değişiklik için kapalı olması gerektiğini belirtir. Anlıyorum ve SRP ile birlikte kullanarak sadece bir şey yapan sınıflar yaratmak için kullanıyorum. Ve, tüm davranış denetimlerini bazı alt sınıflarda genişletilebilen veya geçersiz kılınabilecek yöntemlere çıkarmayı mümkün kılan birçok küçük yöntem oluşturmaya çalışıyorum. Böylece, …

1
Kontrolün Ters Çevirilmesi Bağımlılık Tersine Çevirme ile İlişkisi
Web üzerindeki birçok makalede, Tersine Çevirme ve Bağımlılık Ters Çevirme İlkesi terimleri karışık ve eş anlamlı olarak kullanılmıştır ("DI-Kapsayıcılar" ve "IoC-Kapsayıcılar" olarak adlandırılan araçlarla daha fazla karışıklık vardır). Bir Wikipedia makalesi , IoC'nin DI ile aynı olmadığını açıklamak için iyi bir iş çıkarıyor: denetimin ters çevrilmesi (IoC), bir bilgisayar programının …

5
Varlık Çerçevesi ile Etki Alanında Tasarımın Tuzakları
İncelediğim DDD hakkında birçok ders çoğunlukla teoriyi kapsıyor. Hepsinin ilkel kod örnekleri vardır (Çoğul görüş ve benzeri). Web'de ayrıca birkaç kişi tarafından DDD ile EF'yi kapsayan öğreticiler oluşturma girişimleri de vardır. Onları kısaca incelemeye başlarsanız - birbirlerinden çok farklı olduklarını hemen fark edersiniz. Bazı insanlar uygulamayı asgari düzeyde tutmayı ve …

4
MVC ve RESTful API hizmeti
MVC oldukça basittir. Bir Model, bir Denetleyici ve bir Görünüm var. Bir web sitesi oluşturduğumuzda, hepsi ' istemci sunucuya REST anahtar kelime isteği gönderir -> sunucu istenen URL'yi denetleyici eylemiyle eşleştirir -> sonra veri toplama / işleme için modelleri çağıran sonucu alır -> ve sonucu istemciye HTML sayfası (görünüm) olarak …

2
Bir Varlık Bileşen Sistemi ayırma / bilgi gizleme için korkunç değil mi?
Başlık kasıtlı olarak hiperboliktir ve sadece desenle deneyimim olmayabilir, ancak işte mantığım: Varlıkları uygulamanın "olağan" veya tartışmasız açık yolu, onları nesne olarak uygulamak ve ortak davranışı alt sınıflamaktır. Bu klasik soruna yol açar " EvilTreebir alt sınıfı Treeveya Enemy?". Birden fazla mirasa izin verirsek, elmas problemi ortaya çıkar. Bunun yerine …

5
Bellek tarafından yönetilen diller için referans sayma düzeni?
Java ve .NET, sizin için belleği yöneten harika çöp toplayıcılara ve harici nesneleri ( Closeable, IDisposable) hızlı bir şekilde serbest bırakmak için uygun kalıplara sahiptir , ancak yalnızca tek bir nesneye aitse. Bazı sistemlerde bir kaynağın iki bileşen tarafından bağımsız olarak tüketilmesi gerekebilir ve yalnızca her iki bileşen de kaynağı …

3
İstisnalar veya yedeklilik olmadan giriş doğrulaması nasıl yapılır
Belirli bir program için bir arabirim oluşturmaya çalıştığımda genellikle doğrulanmamış girişe bağlı istisnalar atmaktan kaçınmaya çalışıyorum. Yani sık sık böyle bir kod parçası düşündüm ki (bu sadece bir örnek uğruna bir örnek, gerçekleştirdiği işleve aldırma, örneğin Java): public static String padToEvenOriginal(int evenSize, String string) { if (evenSize % 2 == …

2
İş mantığını işlemlerle DB mantığından ayırma
Uygulamamızda üç katman var. Harici bir API sağlamak için hizmet katmanı. İş mantığımız için BO katmanı ve veritabanı bağlantımız için bir DAO katmanı. Diyelim ki bir dosyayı her güncellediğimizde, Klasör'deki bir şeyi değiştirmek istiyoruz, örneğin 'son değiştirilme tarihi'. Bunun bir işlemde yapılması gerekir. Ya başarılı olur ve hem Dosya hem …

7
Nesne durumunun OO dilinde uygulanması?
Temel bir durum makinesinin uygulanmasını içeren bir araba yarışını simüle eden bazı Java kodları aldım. Bu klasik bir bilgisayar bilimi devlet makinesi değil, sadece birden fazla duruma sahip olabilen ve bir dizi hesaplamaya dayanarak durumları arasında geçiş yapabilen bir nesnedir. Sadece sorunu tanımlamak için, Araba durumu için bazı sabitleri tanımlayan …

2
İyi uygulamalarda KURU prensibi?
Programlamamda olabildiğince DRY ilkesini izlemeye çalışıyorum. Son zamanlarda OOP'ta tasarım kalıpları öğreniyorum ve kendimi bir sürü tekrarladım. Kalıcılığımı işlemek için bir Fabrika ve Ağ Geçidi desenleri ile birlikte bir Depo deseni oluşturdum. Uygulamamda bir veritabanı kullanıyorum, ancak Gateway'i değiştirebilmem ve istersem kalıcılığın başka bir türüne geçebilmem gerektiğinden bu önemli değil. …

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.