Dört kişiden oluşan çetenin tasarım kalıplarını şöyle sınıflandırdığını düşünüyorum.
Sık karşılaşılan bir problem için ortak bir çözüm *
Bu yüzden evet, aynı tür problemler ortaya çıktığında modeller birbiriyle ilgilidir. Bu da bizi "Tasarım Deseni" terimiyle ilgili bir soruna getiriyor. Bir kalıp, tekrar tekrar meydana gelen tanınabilir bir şeydir. Yani gerçekte bir tasarım deseni yoktur, bir sorun modeli vardır.
Bazı programlama dilleri, bu sorunların bazıları için doğal çözümler olabilir. “Tasarım Desenleri” kitabının kendisi, eğer CLOS kullanıyorsanız, çok yönlü gönderim CLOS tarafından doğal olarak desteklendiğinden, Ziyaretçi deseninin çözmeye çalıştığı sorun olan CLOS kullanıyorsanız, ziyaretçi şablonunun değeri çok azdır.
Ayrıca, .NET çerçevesi, olayları birden fazla dinleyiciye yayınlamak için yerleşik bir olay mekanizmasına sahiptir ve böylece Observer modelini bu bağlamda daha az alakalı hale getirir.
Masaüstü uygulamalarından web uygulamalarına ** geçiş, çözmemiz gereken programlama problemlerinin türünü de değiştirir. "Tasarım Kalıpları" kitabındaki kalıpların çoğu, masaüstü uygulamaları ile ilgilidir, ancak web uygulamaları için fazla değildir. Tabii ki, tek sayfa uygulamalarında, bu modeller müşteri tarafında yine alakalı olabilir.
Ancak, tasarım kalıpları ve "Tasarım Kalıpları" veya "Kurumsal Uygulama Mimarisi Kalıpları" gibi kitaplar, acemi bir programcı olduğunuzda ve ilk kez yeni bir sorunla karşı karşıya kaldığınızda çok değerlidir; ilk kez olduğum gibi Geri Al işlevselliğini uygulamam istendi. “Tasarım Desenleri” kitabı olmasaydı, benim uygulamam büyük olasılıkla her durum değiştiren operasyondan sonra verilerin bir anlık görüntüsünü depolamak gibi bir şey olabilirdi *** - çok hataya açık ve korkunç derecede yetersiz bir yaklaşım.
Bu yüzden evet, kalıbın bir kısmı zamanla daha az alakalı hale gelir ve deneyimli bir programcı olduğunuzda onlar hakkında daha az düşünürsünüz. Ancak bir acemiye göre, bir problemi çözmenin bir yolu olduğunu hatırladığınız sürece değerlidirler - ve mümkün olduğunca çok bir arayış değildir.
* alıntı, bellekten alındığı için% 100 doğru olmayabilir
** benim deneyimlerime göre, işletmelerin iç iş kolu uygulamaları için web dağıtım mekanizmaları seçmeleri çok yaygınlaşıyor.
*** fonksiyonel programlama ve fonksiyonel veri yapılarını öğrendikten sonra, bu aslında bugün çözme yöntemim olabilir.