Es erfordert eine detaillierte Erklärung, aber ich werde versuchen, die Unterschiede nach meinem besten Wissen zu skizzieren.
Muster sind destillierte Gemeinsamkeit, die Sie in Programmen finden. Es erlaubt uns, eine große komplexe Struktur zu dekonstruieren und mit einfachen Teilen zu bauen. Es bietet eine allgemeine Lösung für eine Klasse von Problemen.
Eine große komplexe Software durchläuft eine Reihe von Dekonstruktionen auf verschiedenen Ebenen. Auf großer Ebene sind architektonische Muster die Werkzeuge. Auf einer kleineren Ebene sind Entwurfsmuster die Werkzeuge und auf der Implementierungsebene sind Programmierparadigmen die Werkzeuge.
Ein Muster kann auf sehr unterschiedlichen Ebenen auftreten. Siehe Fractals. Schnellsortierung, Zusammenführungssortierung sind algorithmische Muster zum Organisieren einer Gruppe von Elementen in einer Reihenfolge.
Für eine höchst vereinfachte Sicht:
Programming paradigms Specific to programming language
......................
Design patterns Solves reoccurring problems in software construction
......................
Architectural patterns Fundamental structural organization for software systems
......................
Idiom sind Paradigma spezifische und sprachspezifische Programmiertechniken, die in Low-Level-Details zu füllen.
Entwurfsmuster sind normalerweise mit Common-Level-Codes verbunden. Es bietet verschiedene Schemata zur Verfeinerung und zum Aufbau kleinerer Subsysteme. Es wird normalerweise von der Programmiersprache beeinflusst. Einige Muster verblassen aufgrund von language paradigms in Bedeutungslosigkeit. Entwurfsmuster sind mittlere Taktiken, die etwas von der Struktur und dem Verhalten von Entitäten und ihren Beziehungen ausprägen.
Während Architekturmuster gelten als Gemeinsamkeit auf höherer Ebene als Design-Muster. Architekturmuster sind High-Level-Strategien, die große Komponenten, die globalen Eigenschaften und Mechanismen eines Systems betreffen.
Wie werden Muster erhalten? durch:
- Wiederverwendung,
- Klassifizierung
- und schließlich Abstraktion die Gemeinsamkeit zu destillieren.
Wenn Sie die oben genannten Gedanken befolgt haben. Sie werden sehen, dass Singleton ein "Entwurfsmuster" ist, während MVC eines der "architektonischen" Muster ist, die sich mit der Trennung von Bedenken befassen.
Versuchen Sie, auf das Lesen:
- http://en.wikipedia.org/wiki/Architectural_pattern_(computer_science)
- http://en.wikipedia.org/wiki/Design_pattern
- http://en.wikipedia.org/wiki/Anti-pattern
Bereits diskutiert: https://stackoverflow.com/a/46419722/3649347 – GeekOnJava