Wymaga szczegółowego wyjaśnienia, ale spróbuję naszkicować różnice według mojej najlepszej wiedzy.
Wzory to destylowana wspólność, którą można znaleźć w programach. Pozwala nam na dekonstrukcję dużej złożonej konstrukcji i budowanie z prostych części. Zapewnia ogólne rozwiązanie dla klasy problemów.
Duże, złożone oprogramowanie przechodzi serię dekonstrukcji na różnych poziomach. Na ogół narzędziami są wzorce architektoniczne. Na mniejszym poziomie wzorce projektowe są narzędziami, a na poziomie wdrażania narzędziami są paradygmaty programowania.
Wzór może występować na bardzo różnych poziomach. Zobacz fraktale . Szybkie sortowanie, sortowanie przez scalanie to wszystkie algorytmiczne wzorce organizowania grupy elementów w kolejności.
Aby uzyskać najbardziej uproszczony widok:
- Paradygmaty programowania - specyficzne dla języka programowania
- Wzorce projektowe - rozwiązuje powtarzające się problemy w konstrukcji oprogramowania
- Wzorce architektoniczne - podstawowa organizacja strukturalna systemów oprogramowania
Idiomy to specyficzne dla paradygmatu i języka techniki programowania, które wypełniają szczegóły niskiego poziomu.
Wzorce projektowe są zwykle związane z podobieństwami na poziomie kodu. Zapewnia różne schematy udoskonalania i budowania mniejszych podsystemów. Zwykle ma na to wpływ język programowania. Niektóre wzorce bledną na skutek paradygmatów językowych . Wzorce projektowe to taktyki o średniej skali, które uwydatniają niektóre struktury i zachowania jednostek i ich relacji.
Podczas gdy wzorce architektoniczne są postrzegane jako coś wspólnego na wyższym poziomie niż wzorce projektowe. Wzorce architektoniczne to strategie wysokiego poziomu, które dotyczą komponentów wielkoskalowych, globalnych właściwości i mechanizmów systemu.
Jak uzyskuje się wzory? Przez:
- ponowne użycie,
- Klasyfikacja
- i wreszcie abstrakcja, aby wydestylować podobieństwo.
Jeśli zastosowałeś się do myśli przedstawionych powyżej. Przekonasz się, że Singleton to „wzorzec projektowy”, podczas gdy MVC jest jednym ze wzorców „architektonicznych” służących do rozwiązywania problemów.
Spróbuj przeczytać na:
- http://en.wikipedia.org/wiki/Architectural_pattern_(computer_science)
- http://en.wikipedia.org/wiki/Design_pattern
- http://en.wikipedia.org/wiki/Anti-pattern