Ayrıntılı bir açıklama gerektirir, ancak bildiğim kadarıyla farkları en iyi şekilde özetlemeye çalışacağım.
desenler , programlarda bulduğunuz ortak özelliklerdir. Büyük ve karmaşık bir yapıyı parçalamamıza ve basit parçalar kullanarak inşa etmemize olanak tanır. Bir problem sınıfı için genel bir çözüm sağlar.
Büyük ve karmaşık bir yazılım, farklı düzeylerde bir dizi yapısızlaştırma sürecinden geçer. Genel olarak mimari desenler araçlardır. Daha küçük düzeyde, tasarım kalıpları araçlardır ve uygulama düzeyinde, programlama paradigmaları araçlardır.
Çok farklı seviyelerde bir model ortaya çıkabilir. GörmekFraktallere . Hızlı sıralama, Birleştirme sıralaması, bir grup öğeyi bir sırayla düzenlemek için kullanılan algoritmik kalıplardır.
Daha basit bir bakış açısı için:
- Programlama paradigmaları - programlama diline özel
- Tasarım desenleri - yazılım yapımında tekrar eden sorunları çözer
- Mimari modeller - yazılım sistemleri için temel yapısal organizasyon
Deyimler , alt düzey ayrıntıları dolduran paradigmaya özgü ve dile özgü programlama teknikleridir.
Tasarım kalıpları genellikle kod seviyesi ortaklıkları ile ilişkilendirilir. Daha küçük alt sistemleri geliştirmek ve geliştirmek için çeşitli planlar sağlar. Genellikle programlama dilinden etkilenir. Dil paradigmaları nedeniyle bazı modeller önemsiz hale geliyor . Tasarım kalıpları, varlıkların bazı yapı ve davranışlarını ve bunların ilişkilerini ortaya çıkaran orta ölçekli taktiklerdir.
İken mimari desenler tasarım desenleri daha yüksek seviyede ortaklığı olarak görülüyor. Mimari modeller, büyük ölçekli bileşenleri, bir sistemin küresel özelliklerini ve mekanizmalarını ilgilendiren üst düzey stratejilerdir.
Desenler nasıl elde edilir? Vasıtasıyla:
- yeniden kullanımı,
- sınıflandırma
- ve nihayet ortaklığı damıtmak için soyutlama.
Yukarıda belirtilen düşünceleri takip ettiyseniz. Singleton'ın bir "tasarım deseni" olduğunu, MVC'nin ise kaygıların ayrılmasıyla ilgilenen "mimari" modellerden biri olduğunu göreceksiniz.
Okumayı deneyin:
- http://en.wikipedia.org/wiki/Architectural_pattern_(computer_science)
- http://en.wikipedia.org/wiki/Design_pattern
- http://en.wikipedia.org/wiki/Anti-pattern