Sizce en popüler tasarım deseni hangisidir?
Sizce en popüler tasarım deseni hangisidir?
Yanıtlar:
En yaygın olanın 'Çamurun Büyük Topu' olduğundan eminim. Maalesef hepimiz için.
http://en.wikipedia.org/wiki/Big_ball_of_mud
MVC ve varyasyonları kesinlikle en iyi tasarım modellerinden biridir.
Dörtlü Çete tasarım modellerinden bahsediyorsan , Singleton demek zorunda kalacağım . Bu gerçekten üzücü bir durum - neredeyse programcılar tasarım desenlerinin sihrini duyuyorlar ve ardından ilkinden sonra durdular.
Mimari tarzı kalıplardan (diğer bir deyişle, birden fazla sınıfa veya katmanı kapsayan tasarım kalıplarından) bahsediyorsanız , MVC'yi söylemem gerekirdi . Diğer birkaçı da popüler olanı depo modeli ve servis bulucu .
Gözlemci
Eğer hiç bir etkinlik kullandıysanız. Observer'ı kullandın.
Dekoratör
Kompozisyon aracılığıyla çalışma zamanında bir nesneye işlevsellik ekleyin. Benim kişisel favorim.
Düzenleme: Ayrıca Fabrika muhtemelen en yaygın olanlarından biridir.
Cephe
Twitter veya SO API'ları gibi herhangi bir REST arayüzü düşünün. En azından twitter davasında korkunç derecede karmaşık olabilen bir grup arka tarafı saklıyor.
Hangi apk db @ apklusk tweets içinde saklanır mı? Ve hızlı bir önbelleği var? Ve @ shemnon'un okuryazarlığı o kadar düşük ki, tweetler her zaman hafızada kalıyor? Cephe'nin büyüsü bu.
Strateji Deseni
Bağımlılık enjeksiyonunu daha önce kullandıysanız, strateji modelini kullandınız.
Önceki cevabımın yanı sıra, kalıtsal bir projenin canavarımdan bugün karşılaştığım yeni bir tane daha ekleyeceğim:
Kopyala yapıştır
Hata ayıklama yaparken benzer adlandırılmış işlevleri çağıran bir kod parçasına rastladım:
if(x)
Func1
else
Func2
Func1 ve Func2 aynı parametrelere sahipti. Onları dışarı çektim ve farklı oldum, Func1 Func3 ve Func2 Func4 çağrıları dışında% 100 aynılar. Bunları çıkardım ve farklılaştırdım. % 100 aynı, 1 satır hariç. Böylece önceki bir programcı, bayrak parametresi eklemek yerine, 50 satırlık iki işlevi kopyalamak ve tam olarak 1 yerde kullanılan 2 özel işleve yapıştırmaya karar verdi. Ağlamak istememi sağlıyor.
Dörtlü Çete tasarım modellerinden bahsederken, Gözlemci modelini kullanmayan bir program düşünemiyorum. Ayrıca, Jaco'nın bahsettiği gibi, Singleton da çok kullanılıyor, maalesef bir çekiç haline geldi (herhangi bir programcı tam olarak gerekmese bile kullanıyor).
$_SESSION
değişkeninde depolanan bir tekildir .
yorumlayıcı
Nadiren uygulanır, sıklıkla kullanılır. XPATH, XSLT, Regex, jQuery seçicileri vb.
Henüz kimsenin "Oluşturucu" demediğine şaşırdım. Veya "Adaptör". Muhtemelen bahsettiğimiz diğerlerinin bazıları kadar egzotik değiller ama ben her zaman kullanırım. Fabrika ve Soyut Fabrika da çok yaygındır (ancak zaten alınmışlar).
GoF'ta listelendiğini sanmıyorum, ancak her zaman bunun çeşitlemelerini kullanıyorum.
En sık kullanılan tasarım deseni açıkçası Spagetti'dir .
Yazılım tasarım düzeyinde, Kompozit, Strateji ve Şablonun (ve daha küçük bir ölçüde Fabrika) en yaygın kullanım olduğunu iddia ediyorum. Son on yıl boyunca, sistemlerimizi bir OO tasarımı kullanarak inşa ederken mirasa ilişkin bir kompozisyon tercihi gördük. Sonuç olarak, az önce bahsedilen kalıpların birleşimi diğer tüm IMO'lardan çok daha önemli bir rol oynamaktadır.
Mimari olarak, girişimde MVC'yi ve şeylerin gömülü tarafındaki devlet makinelerine dayanan kalıpları savunuyorum.