Hallo allerseits, Freunde. Mein Name ist Alex und ich bin ein professioneller Softwareentwickler und Entwickler in der Webbranche. Ich lerne seit vielen Jahren Sprachen und teile meine Erfahrungen mit anderen.
Heute möchte ich mit Ihnen über das Strategie- Designmuster sprechen . Ich werde versuchen, Ihnen die Prinzipien und das Wesen der Vorlage ohne Wasser zu vermitteln und Ihnen zu zeigen, wie Sie sie in der Praxis anwenden können.
Was ist der Sinn?
Entwurfsmusterstrategie oder Entwurfsmusterstrategie bezieht sich auf Verhaltensentwurfsmuster. Seine Aufgabe ist es, ähnliche Algorithmen zu identifizieren, die ein bestimmtes Problem lösen. Die Implementierung der Algorithmen erfolgt in separaten Klassen und die Möglichkeit zur Auswahl von Algorithmen wird zur Laufzeit bereitgestellt.
Die Vorlage ermöglicht es während des Ausführungsprozesses, eine Strategie (Algorithmus, Werkzeug, Ansatz) zur Lösung des Problems auszuwählen.
Was ist das Problem?
Betrachten wir die Aufgaben, in deren Lösung dieser Ansatz angewendet werden kann.
Stellen Sie sich vor, Sie stehen vor der Aufgabe, ein Webportal für die Immobiliensuche zu schreiben. MVP ( Minimum Viable Product ) oder Minimum Working Product wurde von Ihrem Team von Produktmanagern entworfen und priorisiert, und das Portal sollte Funktionen für Wohnungskäufer bieten. Das heißt, die Zielbenutzer Ihres Produkts sind in erster Linie diejenigen, die nach einem neuen Zuhause suchen, um es zu kaufen. Eine der am häufigsten nachgefragten Funktionen sollte die Fähigkeit sein:
Wählen Sie den Bereich auf der Karte aus, in dem der Käufer ein Haus kaufen möchte
Und geben Sie die Preisspanne der Preise für Wohnungen zum Filtern an.
, . , , , .
Product Manager' , , . - . , , .
, - , .
. , . - - , , .
, . . , , . , , , , .
, , . , , , , , . :
-
-
, ,
,
, , .
?
:
- , , ..
- . , . , , , . , , - - . -.
, - . - -.
, -, . .
-, , doSearch(filters)
, , .
, - , (, , , , ..), , , - -, , . , , backend, .
- - , . - - , . , getData
, filters
. , - setStrategy
, . , , , .
, GOlang. - doSearch
:
, . , . Map
.
. struct
, Strategy
. , , , . :
. - . ? - , :
struct
initStrategy
, -
struct setStrategy
,
getData
, .
- . -, . getData
. , - ( - ) , . , , . :
:
First implements strategy map[role:1]
Second implements strategy map[role:2]
, . , , . .
?
Strategy?
. -, -.
- . -, -.
. .
. , -, .
Freunde, wir haben uns mit der Strategie des Verhaltensentwurfs vertraut gemacht . Die Vorlage wird verwendet, um ähnliche Algorithmen hervorzuheben, die ein bestimmtes Problem lösen. Wir haben uns mit Ihnen die Implementierung in der Sprache GOlang angesehen , uns mit den Möglichkeiten des Ansatzes vertraut gemacht und herausgefunden, wann es besser ist, ihn zu verwenden.
Ich war froh, mit Ihnen zu sprechen, Alex Versus . Viel Glück!