Kreative Designmuster mit Swift

Dec 13 2022
Im Allgemeinen helfen Entwurfsmuster dabei, die Software zu modularisieren, sodass jede Komponente separat ist und eine einzige Verantwortung erfüllt. Das bedeutet, dass Entwurfsmuster schon immer dazu beigetragen haben, verwaltbare, testbare, wiederverwendbare und optimierte Software zu erstellen.

Im Allgemeinen helfen Entwurfsmuster dabei, die Software zu modularisieren, sodass jede Komponente separat ist und eine einzige Verantwortung erfüllt. Das bedeutet, dass Entwurfsmuster schon immer dazu beigetragen haben, verwaltbare, testbare, wiederverwendbare und optimierte Software zu erstellen. Außerdem erhöhen sie die Lesbarkeit des Codes und der Softwareentwicklungsprozess wird mit ihnen stark beschleunigt.

Für weitere Informationen über die SOLID -Prinzipien der objektorientierten Programmierung verlasse ich diesen Artikel darüber und einen weiteren Artikel für Architectural Design Patterns .

Gestaltungsmuster befassen sich damit, wie ein Objekt oder eine Gruppe auf flexible und wiederverwendbare Weise erstellt werden kann.

„Creational Design Patterns in der Softwaretechnik sind Designmuster, die sich mit Objekterstellungsmechanismen befassen und versuchen, Objekte situationsgerecht zu erstellen. Die Grundform der Objekterstellung könnte zu Entwurfsproblemen oder zusätzlicher Komplexität des Entwurfs führen. Kreationsdesignmuster lösen dieses Problem, indem sie diese Objekterstellung irgendwie steuern.“

Wir werden in diesem Thema über fünf Entwurfsmuster sprechen. Aber Sie sollten wissen, dass es auch andere kreative Designmuster gibt, wie Monostate, Object Pool usw.

Fabrik

Das Factory-Entwurfsmuster ist eine Struktur, die eine Hintergrundgenerierung einer Klasse oder eines Objekts bereitstellt. Es stellt ein Protokoll (Schnittstelle) bereit , um verwandte Objekte zu erstellen, und ermöglicht es Unterklassen, welche Klasse zu instanziieren.

In diesem Muster kann der Client wissen, welche Klasseninstanz er annehmen kann, aber nicht die Erstellungsdetails. Mit anderen Worten, wie das Objekt erstellt wird, wird abstrahiert.

BMW
Audi

Abstract Factory wird verwendet, um Produktgruppen zu erstellen, die miteinander verwandt sind. Genauer gesagt bietet es eine Schnittstelle zum Erstellen zusammenhängender Produktfamilien. Der Unterschied zum Factory-Muster besteht darin, dass es eine Gruppe erstellt. Man kann es sich als eine Fabrik vorstellen, die eine Fabrik produziert.

Einling

Eine Klasse darf nur eine Instanz haben, und diese Instanz muss mit einem globalen Zugriffspunkt versehen sein. Mit diesem Muster verhindern wir, dass das Objekt neu erstellt wird.

Das Schlüsselwort static ist für dieses Entwurfsmuster wichtig. Ohne einen statischen Schlüssel können wir kein Singleton erstellen. Weil Sie sich daran erinnern, dass Statik immer einmal im Speicher erstellt wird. Außerdem muss der Konstruktor private sein .

Die Singleton-Mitglieder werden vorbereitet, bevor das Programm läuft, und sterben niemals innerhalb der Anwendung. Sie werden vom Garbage Collector beim Verlassen der Klasse nicht zerstört. Aus diesem Grund sollte nicht alles zu einem Singleton gemacht werden. Singletons können für Objekte verwendet werden, die regelmäßig in der Anwendung verwendet werden.

Rechts unten sehen Sie, dass init nur einmal aufgerufen wurde, selbst wenn wir PrinterObject.shared.printSingleton() zweimal aufgerufen haben.

Call init CreationalDesignPatterns_Sources.PrinterObject
Printing: CreationalDesignPatterns_Sources.PrinterObject
Printing: CreationalDesignPatterns_Sources.PrinterObject

Das Prototyp-Entwurfsmuster ermöglicht die Erstellung von Prototypen bestehender Objekte. Der Hauptgrund für das Entwerfen des Prototypmusters besteht darin, schnell ein anderes Objekt des gleichen Typs über dem verwandten Objekt zu produzieren.

So erstellen Sie Klone von Adressen:

Address Title: Home, Phone: 3948728, City: Istanbul
Address Title: Work, Phone: 3948728, City: Istanbul

„Builder ist ein kreatives Entwurfsmuster, mit dem Sie komplexe Objekte Schritt für Schritt konstruieren können. Das Muster ermöglicht es Ihnen, verschiedene Arten und Darstellungen eines Objekts mit demselben Konstruktionscode zu erstellen.“

Das Builder-Muster ist ein Muster, das bei der Erstellung komplexer Objekte verwendet wird, sodass der Client produzieren kann, indem er nur den Objekttyp angibt. Das Builder-Muster wird verwendet, um die Erstellung eines komplexen Objekts, das aus mehreren Teilen besteht, und die Erstellungsphasen dieses komplexen Objekts vollständig vor dem Client-Modul zu verbergen. Dieses Muster wird verwendet, wenn es mehr als eine Präsentation des eigentlichen Produkts gibt, das der Kunde verwenden möchte.

Sie können eine Schließung für AddressBuilder aufgrund der oben vorgenommenen Definition erstellen. Das ist es, unser Baumeister ist bereit.

Address Title: Home, Phone: 723823747, City: London

In meinen nächsten Artikeln werde ich über Verhaltensmuster und strukturelle Entwurfsmuster sprechen.

Sie können alle Codes von Github erreichen.

Wenn Sie sich für Kotlin interessieren, empfehle ich Ihnen, Creational Design Patterns with Kotlin von Ecem Okan zu lesen.