Was ist der Unterschied zwischen objektorientierten Entwurfsmustern und Prinzipien? Sind sie verschiedene Dinge? Nach meinem Verständnis versuchen beide, ein gemeinsames Ziel zu erreichen (z. B. Flexibilität). Kann ich also sagen, dass ein Muster ein Prinzip ist und umgekehrt?
Konstruktionsprinzip = SOLID (dh Abhängigkeitsinversionsprinzip)
Entwurfsmuster = Gof (dh abstraktes Fabrikmuster)
quelle
Diese Konzepte sind nicht gleich:
* Konstruktionsprinzip: * Die Konstruktionsprinzipien für Software stellen eine Reihe von Richtlinien dar, die uns dabei helfen, ein schlechtes Design zu vermeiden. wie: Open Close Prinzip
* Entwurfsmuster: * Ein Entwurfsmuster ist eine allgemeine wiederverwendbare Lösung für ein häufig auftretendes Problem in einem bestimmten Kontext im Software-Entwurf. Wie: Singleton
quelle
Muster sind zu Prinzipien, was Implementierungen zu Mustern sind.
Ein Prinzip wäre "Indirektion", was durch ein "Factory" -Muster erreicht werden könnte, das am Ende als Klasse mit Factory-Methoden implementiert wird.
quelle
Nun, Prinzipien sind Regeln, während Muster ihre konkreten Beispiele sind.
quelle
Muster sind mehr übergeordnete Dinge als Prinzipien. Muster lösen bestimmte Probleme. Prinzipien können unabhängig vom Kontext überall angewendet werden. Tatsächlich auf Prinzipien basierende Muster (SRP, DRY usw.)
EG Schauen wir uns das Strategiemuster an. Es definiert eine Familie von Algorithmen, kapselt jede und macht sie austauschbar. Sie haben hier also ein Konzept des Algorithmus auf hoher Ebene. Mit State Pattern haben Sie ein übergeordnetes Konzept des Staates. Mit Prinzipien haben Sie keine übergeordneten Konzepte. Prinzipien sind Bausteine, mit denen Muster das Ziel erreichen. Wenn Sie ein Strategiemuster implementieren, verwenden Sie SOLID:
quelle
Muster wurden ursprünglich für die Architektur dokumentiert. Wenden Sie in der Architektur Dinge an, die von der Platzierung der Tür in einem Raum bis zum Layout eines Dorfes reichen.
Die Viererbande wandte die Idee auf objektorientierte Programmierung an. Es kann mehr als ein Muster geben, das zur Lösung eines Problems verwendet werden kann, aber jedes Muster hat eine spezifische Implementierung. Muster existieren in anderen Programmieransätzen, aber mir sind keine anwendbaren Bücher bekannt. Wie bereits erwähnt, decken Patterns bestimmte Implementierungen ab. Die Verwendung eines Musters, wenn es nicht angewendet wird, wird häufig als Antimuster angesehen.
Prinzipien decken nicht die Implementierung ab, obwohl es Standardansätze für die Implementierung geben kann. Bei den Grundsätzen geht es eher um allgemeine Themen als um spezifische Probleme. Für Inversion of Control sind mir mindestens drei Implementierungsansätze bekannt. Für DRY (Don't Repeat Yourself) kenne ich keinen einzigen spezifischen Implementierungsansatz, obwohl ich mehrere verwende.
Erwägen
quelle
OO-Design-Prinzip
Das OO-Prinzip ist eine Reihe von Richtlinien, die das OOP-Konzept sicherstellen. Basierend auf dem OOP-Konzept werden hier Wege definiert, um besser zu entwerfen, ein besseres Design. Das grundlegende OO-Konstruktionsprinzip ist SOLID.
Ein Entwurfsmuster bietet eine allgemeine Lösung für ein Entwurfsproblem. Bitte beachten Sie, dass das Entwurfsmuster auch auf objektorientierte Mittagswörter angewendet werden kann. A OO Design Patterns (OODPs) sind also diejenigen, die eine allgemeine Lösung für das objektorientierte designbasierte OO-Prinzip darstellen. Designmuster werden entdeckt, nicht erfunden. Es gibt mehrere Möglichkeiten, OODPs zu definieren, und die bekannteste ist BSC [Behavioral Structural Creational].
Nachfolgend finden Sie den Link zur detaillierten Erläuterung. http://techythought.wordpress.com/2013/01/21/design-principle-vs-ds-design-pattern-describing-oop-elements/
quelle