{"id":253501,"date":"2023-06-08T11:14:00","date_gmt":"2023-06-08T08:14:00","guid":{"rendered":"https:\/\/inform.click\/designmodelle-fur-anfanger\/"},"modified":"2023-06-08T11:30:00","modified_gmt":"2023-06-08T08:30:00","slug":"designmodelle-fur-anfanger","status":"publish","type":"post","link":"https:\/\/inform.click\/de\/designmodelle-fur-anfanger\/","title":{"rendered":"Designmodelle f\u00fcr Anf\u00e4nger"},"content":{"rendered":"<p>\n  Wenn Sie bereits Programme f\u00fcr gro\u00dfe \/ kleine Produkte oder Softwareanwendungen geschrieben haben, haben Sie h\u00f6chstwahrscheinlich viele Designmuster verwendet \u2026 obwohl es m\u00f6glich ist, dass sie nicht zu den am h\u00e4ufigsten verwendeten \/ Standard-Designmustern geh\u00f6ren.\n<\/p>\n<p>\n  Aber ja, es gibt einen offensichtlichen Unterschied zwischen der Implementierung eines Entwurfsmusters und der \u201eVerwendung&#8220; eines Entwurfsmusters \u2026 so oder so, die Person, die mit Entwurfsmustern arbeitet, versteht es oder wird es leicht verstehen.\n<\/p>\n<p>\n  Der Punkt ist, Entwurfsmuster sind f\u00fcr Programmierer nicht neu.\n<\/p>\n<p>\n  In diesem folgenden Artikel versuche ich, Designmuster in ihren Grundlagen zu erkl\u00e4ren, und wir werden Details verschiedener Muster, Beispiele usw. in einem anderen Artikel untersuchen.\n<\/p>\n<p>\n  Was ist ein Designmuster?\n<\/p>\n<p>\n  <strong>Beginnen\u2026<\/strong>\n<\/p>\n<p>\n  Ich denke, der beste Weg, um mit dem Verst\u00e4ndnis von Designmustern zu beginnen, ist, nicht-technische Muster zu verstehen, denen wir bewusst \/ unbewusst in unserem t\u00e4glichen Leben folgen.\n<\/p>\n<p>\n  Nehmen wir zum Beispiel viele Lebensl\u00e4ufe, die f\u00fcr eine Stellenausschreibung eingereicht wurden. Der Lebenslauf sieht nicht bei allen gleich aus \u2026 obwohl alle dazu neigen, das Gleiche zu tun, n\u00e4mlich einem Leser zu sagen, worin sie bef\u00e4higt sind oder wie sie f\u00fcr den Job geeignet sein k\u00f6nnen.\n<\/p>\n<p>\n  Die meisten von ihnen, die Lebensl\u00e4ufe f\u00fcr Jobs einreichen, wissen, dass sie einen Lebenslauf mit bestimmten Informationen in einem formatierten Word-Dokument einreichen m\u00fcssen.\n<\/p>\n<p>\n  Dies\u2026 ist ein Muster, dass jeder einen Lebenslauf mit einem bestimmten Satz von darin ausgedr\u00fcckten Informationen einreicht.\n<\/p>\n<p>\n  Wenn Sie Lust haben \u2026 nennen Sie es Templates statt Patterns. Designvorlagen.\n<\/p>\n<p>\n  Es gibt viele solche Dinge im wirklichen Leben, die Muster sind. Einige Leute m\u00f6gen die folgenden Beispiele:\n<\/p>\n<p>\n  Alle K\u00f6che rund um den Globus kochen Pizza oder Pommes Frites auf die gleiche Weise. Obwohl sie es vielleicht \u00fcbertreffen \/ anders w\u00fcrzen. Das ist ein Muster.\n<\/p>\n<p>\n  Das Design jedes Autos folgt einem grundlegenden Designmuster, vier R\u00e4dern, Lenkrad, dem zentralen Antriebssystem wie Gaspedal, Bremskupplung usw.\n<\/p>\n<p>\n  Alle Dinge, die wiederholt gebaut \/ produziert werden, m\u00fcssen zwangsl\u00e4ufig einem Muster in ihrem Design folgen\u2026 seien es Autos, Pizza, Geldautomaten, was auch immer\u2026 sogar Zahnb\u00fcrste.\n<\/p>\n<p>\n  Designs, die fast zum Standardverfahren f\u00fcr die Codierung von Logik\/Mechanismus\/Technik in Software geworden sind, werden daher als Software-Designmuster bezeichnet \u2013 und daher auch als solche untersucht.\n<\/p>\n<h3>\n  Warum ist ein Designmuster wichtig?<br \/>\n<\/h3>\n<p>\n  Grunds\u00e4tzlich aus zwei Gr\u00fcnden:\n<\/p>\n<ol>\n<li>\n    <strong>An einem Standard festhalten<\/strong>\n  <\/li>\n<li>\n    <strong>Um die Entwicklung zu beschleunigen<\/strong>\n  <\/li>\n<\/ol>\n<p>\n  Ich werde im Detail erkl\u00e4ren.\n<\/p>\n<p>\n  Zun\u00e4chst sehen wir, warum es interessant ist, sich an ein Standardmuster zu halten.\n<\/p>\n<p>\n  Nehmen wir die Liste der Lebensl\u00e4ufe, die wir zuvor besprochen haben.\n<\/p>\n<p>\n  Es kann ein oder zwei Bewerber geben, die ihre Bewerbungen per E-Mail-Text ohne ordnungsgem\u00e4\u00dfe Formatierung, ohne Anh\u00e4nge an ihre E-Mail usw. senden. Diese ein oder zwei Bewerber folgen nicht dem Muster &#8230; und werden wahrscheinlich NICHT landen mit der Arbeit\u2026. warum? Weil sie von einem gut etablierten Muster abweichen, was den Personen, die Lebensl\u00e4ufe f\u00fcr den Job in die engere Wahl ziehen, m\u00f6glicherweise nicht gef\u00e4llt.\n<\/p>\n<h5>\n  Gibt es niemanden, der vom Muster abweicht und \u201ecool&#8220; wird? Ist das nicht Innovation?<br \/>\n<\/h5>\n<p>\n  Ja, es gibt Zeiten, in denen ein ganz anders pr\u00e4sentierter Lebenslauf den Job bekommt, weil er sich von den anderen unterscheidet. Normalerweise habe ich von Webdesignern geh\u00f6rt, die erstklassige Jobs bekommen haben, weil sie einen CD-Film ihrer Arbeit zusammengestellt und pr\u00e4sentiert haben oder eine Animationsfigur gemacht haben, die ihre Arbeit erkl\u00e4rt, sie in ihren Blog gestellt haben und solche Dinge.\n<\/p>\n<p>\n  Aber &#8230; das ist Experimentieren (Innovation kommt von erfolgreichen Experimenten).\n<\/p>\n<p>\n  Meistens kann man sich in der Softwareentwicklung aufgrund des Zeitdrucks, der Erwartungen usw. keine Experimente leisten, aber ja, manchmal erlauben einige interessante Projekte ein gewisses Experimentieren.\n<\/p>\n<p>\n  In der Software k\u00f6nnen wir grundlegende Dinge wie eine Bankeinzahlung nicht tun \u2026 auf 101 Arten \u2026 es wird nur ein paar M\u00f6glichkeiten geben, eine Bankeinzahlung zu verarbeiten. Es ist also sinnvoll, einem etablierten und getesteten Muster zu folgen.\n<\/p>\n<p>\n  Au\u00dferdem haben die meisten Designmuster Variationen &#8230; einige der Variationen sind so beliebt, dass die Variationen auch ein neuer Standardtyp des Musters sein werden.\n<\/p>\n<p>\n  Von Softwareprojekten wird heutzutage (zumindest implizit) erwartet, dass sie einem bereits etablierten Design eines \u00e4hnlichen Produkts \/ einer \u00e4hnlichen Software auf dem Markt folgen.\n<\/p>\n<p>\n  Hier hilft das Festhalten an einem standardm\u00e4\u00dfigen Codierungsstil oder Designmuster bei der Softwareentwicklung \u2026 die Entwicklung zu beschleunigen, den Aufwand f\u00fcr die Sorge um eine neue ungetestete Implementierung zu beseitigen usw.\n<\/p>\n<h5>\n  Beschleunigung der Entwicklungszeit<br \/>\n<\/h5>\n<p>\n  Das Befolgen eines Standardentwurfsmusters hat auch den Vorteil, dass durch den Baum \/ die Hierarchie von Softwarearchitekten, Modulleitern, Teamleitern, Entwicklern usw. leicht kommuniziert werden kann, \u201ewie&#8220; etwas entwickelt werden muss und nicht nur \u201ewas&#8220; sein muss aufgetreten.\n<\/p>\n<p>\n  Manchmal hilft es sogar Testteams, da Tester aus Erfahrung wissen, dass Code, der einem bestimmten Designmuster folgt, wahrscheinlich in einem bestimmten Zeitraum mit einer Reihe von Testwerkzeugen auf eine bestimmte Weise getestet werden k\u00f6nnte, und solche bekannten Designs m\u00f6glicherweise keine Fehler aufweisen oder einige &#8222;bekannte&#8220; Fehler haben.\n<\/p>\n<h5>\n  Nimmt die Verwendung von Design Patterns nicht eine pers\u00f6nliche Note?<br \/>\n<\/h5>\n<p>\n  Nein. Erstens, weil wir nicht sagen, dass Sie einem Designmuster folgen und nichts anderes passiert. Die meisten Projektimplementierungen teilen nur grundlegende Anforderungen mit anderen Projekten und weisen h\u00f6chstwahrscheinlich Abweichungen auf. Das Erstellen dieser Abweichungen erfordert das Biegen und Strecken der Standardmuster, die in einer Implementierung verwendet werden.\n<\/p>\n<p>\n  Es ist, als w\u00fcrde man die Pizza auf die \u00fcbliche Weise zubereiten und sie dann aromatisieren \/ f\u00fcr verschiedene Anforderungen pr\u00e4sentieren, entweder wie eine Pizza mit vollem Kuchen oder einen geschnittenen Kuchen oder was auch immer.\n<\/p>\n<p>\n  Um die Bedeutung von Entwurfsmustern zu verstehen, ist eines <strong>sehr wichtigwichtig<\/strong> :\n<\/p>\n<p>\n  Design Patterns sind keine Technologien oder Frameworks, die uns ein bestimmtes Unternehmen oder eine bestimmte Programmiersprache aufzwingt. Das hei\u00dft, es ist wie ein offenes Konzept &#8230; Sie k\u00f6nnen es frei nehmen, verwenden, an Ihre Bed\u00fcrfnisse anpassen und vor allem &#8230; f\u00fchlen, wie es Ihnen geh\u00f6rt.\n<\/p>\n<p>\n  Alle Standard- oder popul\u00e4ren Designmuster sind tats\u00e4chlich ziemlich stark erweiterbar. Sie wurden erstens nur deshalb popul\u00e4r, weil viele Leute sie verwenden &#8230; und viele Leute verwenden sie nur, weil sie flexibel auf ihre Anforderungen eingehen.\n<\/p>\n<p>\n  Oder wie w\u00fcrde Ihrer Meinung nach ein Standardentwurfsmuster zu einem Projekt in New Jersey f\u00fcr ein Unternehmen und auch in Bangalore f\u00fcr ein anderes Unternehmen und eine andere Art von Projekt passen?\n<\/p>\n<p>\n  Das bringt uns zu \u201e <strong>Die meisten Entwurfsmuster sind generisch<\/strong> &#8220; \u2026 was bedeutet, dass sie nicht immer zum Erstellen derselben Art von Software verwendet werden. In gemeinsamen Diskussionen h\u00f6ren Sie vielleicht nicht Dinge wie \u201eBanking-Software-Designmuster&#8220; oder \u201eSocial-Networking-Software-Designmuster&#8220; \u2026 sondern nur \u201eDesignmuster&#8220;.\n<\/p>\n<h3>\n  Wen sollten Design Patterns st\u00f6ren?<br \/>\n<\/h3>\n<ol>\n<li>So wie ein guter Geb\u00e4udearchitekt seine F\u00e4higkeiten im Entwerfen von Geb\u00e4uden erweitert, indem er die Architektur und das Design zahlreicher Geb\u00e4ude und Formen im Laufe seines Lebens studiert, sollte ein Softwarearchitekt untersuchen und visualisieren, wie verschiedene Software- \/ Technologiesysteme auf der ganzen Welt entworfen werden oder architektonisch.\n  <\/li>\n<li>Und genauso wie die Bauarbeiter eines Geb\u00e4udes sich der verschiedenen M\u00f6glichkeiten zur Umsetzung eines Geb\u00e4udeentwurfs bewusst sein sollten, entweder aus eigener Erfahrung oder durch das Verst\u00e4ndnis des Architekten des Geb\u00e4udes.\n  <\/li>\n<\/ol>\n<p>\n  Softwareentwickler\/Programmierer sollten grundlegende Softwaredesignmuster und ihren Implementierungscode verstehen \u2026 entweder selbst oder vom Softwarearchitekten, der das Team anweist, es nach einem bestimmten Muster zu entwickeln.\n<\/p>\n<h3>\n  Grundlegende Codemuster<br \/>\n<\/h3>\n<p>\n  In den ersten Zeilen dieses Artikels sagte ich, dass jeder Programmierer Entwurfsmuster verwendet h\u00e4tte. Hier sind einige sehr einfache Codebeispiele, die einem Muster folgen.\n<\/p>\n<ol>\n<li>\n<p>\n      Im Folgenden finden Sie ein grundlegendes Entwurfsmuster <strong>f\u00fcr Abfangfilter .<\/strong>\n    <\/p>\n<\/li>\n<li>\n<p>\n      Kopiercode ausblenden\n    <\/p>\n<\/li>\n<li>\n<pre><code>switch (condition){\n     case Value1:\n     case Value2:\n     default:\n}<\/code><\/pre>\n<\/li>\n<li>\n<p>\n      Ereignisausl\u00f6ser, Ereignishandler usw. fallen unter das grundlegende <strong>Subjekt-Beobachter-<\/strong> Entwurfsmuster. Wir werden in K\u00fcrze alle Musterstandards, beliebte Variationen und Beispiele mit Beispielen besprechen.\n    <\/p>\n<\/li>\n<li>\n<p>\n      Wenn Sie eine Art von Sammlungen wie Arraylist in C# verwendet haben und das Array durchlaufen, haben Sie ein grundlegendes <strong>Iterator-<\/strong> Entwurfsmuster verwendet.\n    <\/p>\n<\/li>\n<li>\n<p>\n      Der folgende Code ist ein Beispiel f\u00fcr ein grundlegendes Ausnahmebehandlungs-\/ <strong>Verantwortungskettenmuster<\/strong>.\n    <\/p>\n<\/li>\n<li>\n<p>\n      Kopiercode ausblenden\n    <\/p>\n<\/li>\n<li>\n<pre><code>try{\n}catch(Exception ex){\n}\nfinally{\n}<\/code><\/pre>\n<\/li>\n<\/ol>\n<h3>\n  Verschiedene Bereiche von Design Patterns<br \/>\n<\/h3>\n<p>\n  Es gibt andere Terminologien in der Software als Design Patterns. Einige von ihnen beziehen sich oft auf Design Patterns, die wir bisher besprochen haben, und einige von ihnen sind v\u00f6llig unabh\u00e4ngig davon.\n<\/p>\n<p>\n  Was wir bisher oben besprochen haben, wird manchmal als \u201e <strong>Implementation Design Patterns<\/strong> &#8220; bezeichnet.\n<\/p>\n<p>\n  Es gibt andere, wie <strong>Architekturmuster, Rahmenmuster, Sprachmuster<\/strong> (meistens als Sprachkonstrukte bezeichnet).\n<\/p>\n<p>\n  Sie sind Muster, die auf verschiedenen Ebenen angelegt sind \u2026 wie <strong>Sprachmuster<\/strong> sind Muster, die als Teil von Programmiersprachen wie C# \/ Java implementiert sind, als die Merkmale \/ Konstrukte der Sprache. Einige davon haben wir bereits gesehen.\n<\/p>\n<p>\n  Alle obigen Beispiele f\u00fcr Subjektbeobachter, Abfangfilter usw. werden als Sprachkonstrukte in alle g\u00e4ngigen h\u00f6heren Programmiersprachen aufgenommen, die nach C kamen.\n<\/p>\n<p>\n  <strong>Architekturmuster<\/strong> sind diese Standardmodelle der Softwarearchitektur, die sich im Allgemeinen auf verschiedene Methoden zum Platzieren oder Verkn\u00fcpfen von Modulen oder Schichten oder Schichten beziehen, aus denen die vollst\u00e4ndige Anwendung besteht.\n<\/p>\n<p>\n  Dies ist v\u00f6llig unabh\u00e4ngig von Entwurfsmustern im Sinne von Codierung\/Programmierung, die \u2026 aber sie haben dieselben Antworten auf Warum\/Was, wie in diesem Artikel diskutiert.\n<\/p>\n<p>\n  <strong>Rahmenmuster<\/strong> haben auch nichts mit unserer Er\u00f6rterung von Entwurfsmustern zu tun. Wenn Frameworks wie .NET spezielle Mittel zum Protokollieren von Fehlern oder Verfolgen von Codeausf\u00fchrungsrouten einfach durch die integrierten Methoden oder Objekte des Frameworks implementieren, werden solche Mechanismen als Framework-Muster bezeichnet.\n<\/p>\n<p>\n  Einige Beispiele in .NET Framework beinhalten die StackTrace-Funktion, die Klassenattributfunktion mit [] eckigen Klammern \u00fcber Klassen-\/Methodendefinitionen usw. Wenn wir solche Funktionen verwenden, codieren wir mit den integrierten Mustern des Frameworks.\n<\/p>\n<p>\n  Ich hoffe, dieser Artikel hilft dabei, einen \u00dcberblick \u00fcber Entwurfsmuster und verwandte Terminologien zu geben.\n<\/p>\n<p>\n  Bisher haben wir nur dar\u00fcber gesprochen, was die Standards sind und wie wichtig sie sind, aber wir haben nicht dar\u00fcber gesprochen, was die Standardmuster selbst sind.\n<\/p>\n<h4>\n  Lizenz<br \/>\n<\/h4>\n<p>\n  Dieser Artikel ist zusammen mit dem dazugeh\u00f6rigen Quellcode und den Dateien unter The Code Project Open License (CPOL) lizenziert.\n<\/p>\n<\/p>\n<div id=\"PostUnique_PostSource\" style=\"padding-top: 50px\">\n  Aufnahmequelle: <a target=\"_blank\" rel=\"noopener nofollow\" data-pssr=\"\" href=\"http:\/\/www.instantshift.com\/2016\/01\/12\/models-of-design-for-beginners\/\">instantshift.com<\/a>\n<\/div>\n","protected":false},"excerpt":{"rendered":"<p>Wenn Sie bereits Programme f\u00fcr gro\u00dfe \/ kleine Produkte oder Softwareanwendungen geschrieben haben, haben Sie h\u00f6chstwahrscheinlich viele Designmuster verwendet \u2026 obwohl es m\u00f6glich ist, dass sie nicht zu den am h\u00e4ufigsten verwendeten \/ Standard-Designmustern geh\u00f6ren. Aber ja, es gibt einen offensichtlichen Unterschied zwischen der Implementierung eines Entwurfsmusters und der \u201eVerwendung\u201c eines Entwurfsmusters \u2026 so oder so, die Person, die mit Entwurfsmustern arbeitet, versteht es oder wird es leicht verstehen. Der Punkt ist, Entwurfsmuster sind f\u00fcr Programmierer nicht neu. In diesem Artikel unten versuche ich, Designmuster in ihren Grundlagen zu erkl\u00e4ren und \u2026<\/p>\n","protected":false},"author":1,"featured_media":142080,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":"","_wp_rev_ctl_limit":""},"categories":[224,55,146,198],"tags":[],"class_list":["post-253501","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-lehrbuecher","category-web-und-wordpress","category-web-tipps-und-tricks","category-webdesign"],"_links":{"self":[{"href":"https:\/\/inform.click\/de\/wp-json\/wp\/v2\/posts\/253501","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/inform.click\/de\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/inform.click\/de\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/inform.click\/de\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/inform.click\/de\/wp-json\/wp\/v2\/comments?post=253501"}],"version-history":[{"count":0,"href":"https:\/\/inform.click\/de\/wp-json\/wp\/v2\/posts\/253501\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/inform.click\/de\/wp-json\/wp\/v2\/media\/142080"}],"wp:attachment":[{"href":"https:\/\/inform.click\/de\/wp-json\/wp\/v2\/media?parent=253501"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/inform.click\/de\/wp-json\/wp\/v2\/categories?post=253501"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/inform.click\/de\/wp-json\/wp\/v2\/tags?post=253501"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}