Modèle de conception de stratégie

Bonjour à tous, mes amis. Je m'appelle Alex et je suis un développeur et créateur de logiciels professionnel dans l'industrie du Web. J'étudie les langues depuis de nombreuses années, partageant mon expérience avec les autres.





Aujourd'hui, je veux vous parler du modèle de conception de la stratégie. Je vais essayer de vous transmettre les principes et l'essence du modèle sans eau, et vous montrer comment l'appliquer dans la pratique.





À quoi ça sert?

Design patter Stratégie  ou modèle de conception La stratégie  fait référence aux modèles de conception comportementale. Sa tâche est d'identifier des algorithmes similaires qui résolvent un problème spécifique. L'implémentation des algorithmes est effectuée dans des classes séparées et la possibilité de sélectionner des algorithmes est fournie au moment de l'exécution.





Le modèle permet en cours d'exécution de choisir une stratégie (algorithme, outil, approche) pour résoudre le problème. 





Quel est le problème?

Considérons les tâches dans la solution desquelles cette approche peut être appliquée. 





Imaginez que vous soyez confronté à la tâche de rédiger un portail Web pour la recherche immobilière. MVP ( Minimum Viable Product ) ou produit de travail minimum a été conçu et priorisé par votre équipe de Product Managers et le portail devrait avoir des fonctionnalités pour les acheteurs d'appartements. Autrement dit, les utilisateurs cibles de votre produit sont, tout d'abord, ceux qui recherchent une nouvelle maison à acheter. L'une des fonctionnalités les plus demandées devrait être la possibilité de:





  • Sélectionnez la zone sur la carte où l'acheteur souhaite acheter une maison





  • Et indiquez la fourchette de prix des prix des appartements pour le filtrage.





, . , , , .





Product Manager' , , . - . , , . 





, - , .





. , . - - , , . 





, . . , , . , , , , .





, , . , , , , , . : 





  • -





  • -





  • , ,





  • ,





  • , , .





Super classe avec une méthode d'implémentation d'algorithme unifiée.
- .

?

















  • - , , .. 





- .   , . , , , . , , - - . -. 





, - . - -. 





Diagramme de classe du modèle de stratégie
Strategy

, -, . .





-, , doSearch(filters)



, , . 





, - , (, , , , ..), , , - -, , . , , backend, .





- - , . -  - , . , getData



, filters



. , -  setStrategy



, . , , , . 





, GOlang. - doSearch







Strategy.go
Strategy.go

, . , . Map



.





. struct



, Strategy



. , , , . :





FirstAlgorithm.go
FirstAlgorithm.go
SecondAlgorithm.go
SecondAlgorithm.go

. - . ? - , :





  • struct







  • initStrategy



    , -





  • struct setStrategy



    ,





  • getData



    , .





Context.go
Context.go

- . -, . getData



. , - ( - ) , . , , . :





Client.go
Client.go

:





First implements strategy map[role:1]







Second implements strategy map[role:2]







, . , , . .





- . , . PHP.





?

Strategy?





  1. . -, -. 





  2. - . -, -. 





  3. . . 





  4. . , -, .





Amis, nous nous sommes familiarisés avec la stratégie de modèle de conception comportementale . Le modèle est utilisé pour mettre en évidence des algorithmes similaires qui résolvent un problème spécifique. Nous avons examiné avec vous l'implémentation dans le langage GOlang , nous nous sommes familiarisés avec les possibilités de l'approche et avons déterminé quand il est préférable de l'utiliser.





J'étais heureux de vous parler, Alex Versus . Bonne chance!








All Articles