{"id":2102,"date":"2019-06-27T08:44:24","date_gmt":"2019-06-27T05:44:24","guid":{"rendered":"http:\/\/demensdeum.com\/blog\/?p=2102"},"modified":"2024-12-16T22:32:36","modified_gmt":"2024-12-16T19:32:36","slug":"prototype-pattern","status":"publish","type":"post","link":"https:\/\/demensdeum.com\/blog\/de\/2019\/06\/27\/prototype-pattern\/","title":{"rendered":"Muster-Prototyp"},"content":{"rendered":"<p>Das Prototypmuster geh\u00f6rt zur Gruppe der generativen Designmuster.<br \/>Nehmen wir an, wir entwickeln Dating-Apps Tender. Gem\u00e4\u00df unserem Gesch\u00e4ftsmodell haben wir die M\u00f6glichkeit, Kopien Ihres eigenen Profils zu erstellen und dabei den Namen und die Reihenfolge der Fotos an einigen Stellen automatisch zu \u00e4ndern. Dies wurde getan, damit der Benutzer die M\u00f6glichkeit hat, in der Anwendung mehrere Profile gleichzeitig mit unterschiedlichen Freunden zu verwalten.<br \/>Durch Klicken auf die Schaltfl\u00e4che zum Erstellen einer Kopie des Profils m\u00fcssen wir das Kopieren des Profils, die automatische Generierung eines Namens und die Neusortierung der Fotos implementieren.<br \/>Naive Pseudocode-Implementierung:<\/p>\n<div class=\"hcb_wrap\">\n<pre class=\"prism line-numbers lang-unknown\" data-lang=\"unknown\"><code>fun didPressOnCopyProfileButton() {\n    let profileCopy = new Profile()\n    profileCopy.name = generateRandomName()\n    profileCopy.age = profile.age\n    profileCopy.photos = profile.photos.randomize()\n    storage.save(profileCopy)\n}\n<\/code><\/pre>\n<\/div>\n<p>Stellen wir uns nun vor, dass andere Teammitglieder den Kopiercode kopiert oder von Grund auf neu erfunden haben und danach ein neues Feld hinzugef\u00fcgt wurde &#8211; mag. In diesem Feld wird die Anzahl der Profil-Likes gespeichert. Jetzt m\u00fcssen Sie *alle* Stellen, an denen das Kopieren erfolgt, manuell aktualisieren, indem Sie ein neues Feld hinzuf\u00fcgen. Es ist sehr zeitaufw\u00e4ndig und schwierig, den Code zu warten und zu testen.<br \/>Um dieses Problem zu l\u00f6sen, wurde das Prototype-Entwurfsmuster erfunden. Erstellen wir ein allgemeines Kopierprotokoll mit einer copy()-Methode, die eine Kopie eines Objekts mit den erforderlichen Feldern zur\u00fcckgibt. Nach dem \u00c4ndern von Entit\u00e4tsfeldern m\u00fcssen Sie nur eine copy()-Methode aktualisieren, anstatt alle Stellen, die Kopiercode enthalten, manuell zu suchen und zu aktualisieren.<\/p>\n<h3>Quellen<\/h3>\n<p><a href=\"https:\/\/refactoring.guru\/ru\/design-patterns\/prototype\" target=\"_blank\" rel=\"noopener\">https:\/\/refactoring.guru\/ru\/design-patterns\/prototype <\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Das Prototypmuster geh\u00f6rt zur Gruppe der generativen Designmuster.Nehmen wir an, wir entwickeln Dating-Apps Tender. Gem\u00e4\u00df unserem Gesch\u00e4ftsmodell haben wir die M\u00f6glichkeit, Kopien Ihres eigenen Profils zu erstellen und dabei den Namen und die Reihenfolge der Fotos an einigen Stellen automatisch zu \u00e4ndern. Dies wurde getan, damit der Benutzer die M\u00f6glichkeit hat, in der Anwendung mehrere<a class=\"more-link\" href=\"https:\/\/demensdeum.com\/blog\/de\/2019\/06\/27\/prototype-pattern\/\">Continue reading <span class=\"screen-reader-text\">&#8220;Muster-Prototyp&#8221;<\/span><\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_monsterinsights_skip_tracking":false,"_monsterinsights_sitenote_active":false,"_monsterinsights_sitenote_note":"","_monsterinsights_sitenote_category":0,"_jetpack_memberships_contains_paid_content":false,"footnotes":""},"categories":[61,52],"tags":[95,110],"class_list":["post-2102","post","type-post","status-publish","format-standard","hentry","category-techie","category-tutorials","tag-patterns","tag-prototype","entry"],"translation":{"provider":"WPGlobus","version":"3.0.2","language":"de","enabled_languages":["en","ru","zh","de","fr","ja","pt"],"languages":{"en":{"title":true,"content":true,"excerpt":false},"ru":{"title":true,"content":true,"excerpt":false},"zh":{"title":true,"content":true,"excerpt":false},"de":{"title":true,"content":true,"excerpt":false},"fr":{"title":true,"content":true,"excerpt":false},"ja":{"title":true,"content":true,"excerpt":false},"pt":{"title":true,"content":true,"excerpt":false}}},"jetpack_featured_media_url":"","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/demensdeum.com\/blog\/de\/wp-json\/wp\/v2\/posts\/2102","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/demensdeum.com\/blog\/de\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/demensdeum.com\/blog\/de\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/demensdeum.com\/blog\/de\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/demensdeum.com\/blog\/de\/wp-json\/wp\/v2\/comments?post=2102"}],"version-history":[{"count":10,"href":"https:\/\/demensdeum.com\/blog\/de\/wp-json\/wp\/v2\/posts\/2102\/revisions"}],"predecessor-version":[{"id":3951,"href":"https:\/\/demensdeum.com\/blog\/de\/wp-json\/wp\/v2\/posts\/2102\/revisions\/3951"}],"wp:attachment":[{"href":"https:\/\/demensdeum.com\/blog\/de\/wp-json\/wp\/v2\/media?parent=2102"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/demensdeum.com\/blog\/de\/wp-json\/wp\/v2\/categories?post=2102"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/demensdeum.com\/blog\/de\/wp-json\/wp\/v2\/tags?post=2102"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}