Patrón de diseño de estrategia

Hola a todos, amigos. Mi nombre es Alex y soy un desarrollador y creador de software profesional en la industria web. He estado estudiando idiomas durante muchos años, compartiendo mi experiencia con otros.





Hoy quiero hablaros sobre el patrón de diseño de la estrategia. Intentaré transmitirte los principios y la esencia de la plantilla sin agua, y mostrarte cómo aplicarla en la práctica.





¿Cuál es el punto de?

Patrón de diseño Estrategia  o patrón de diseño La estrategia se  refiere a patrones de diseño de comportamiento. Su tarea es identificar algoritmos similares que resuelvan un problema específico. La implementación de los algoritmos se lleva a cabo en clases separadas y la capacidad de seleccionar algoritmos se proporciona en tiempo de ejecución.





La plantilla permite en el proceso de ejecución elegir una estrategia (algoritmo, herramienta, enfoque) para resolver el problema. 





¿Cuál es el problema?

Consideremos las tareas en cuya solución se puede aplicar este enfoque. 





Imagina que te enfrentas a la tarea de redactar un portal web para la búsqueda de inmuebles. MVP (producto mínimo viable ) o producto de trabajo mínimo ha sido diseñado y priorizado por su equipo de gerentes de producto y el portal debe tener funcionalidad para compradores de apartamentos. Es decir, los usuarios objetivo de su producto son, en primer lugar, aquellos que buscan una nueva vivienda para comprar. Una de las características más solicitadas debería ser la capacidad de:





  • Seleccione el área en el mapa donde el comprador desea comprar una casa.





  • E indicar el rango de precios de los precios de los apartamentos para el filtrado.





, . , , , .





Product Manager' , , . - . , , . 





, - , .





. , . - - , , . 





, . . , , . , , , , .





, , . , , , , , . : 





  • -





  • -





  • , ,





  • ,





  • , , .





Superclase con un método de implementación de algoritmo unificado.
- .

?

















  • - , , .. 





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





, - . - -. 





Diagrama de clases del patrón de estrategia
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. . , -, .





Amigos, nos familiarizamos con la estrategia del patrón de diseño de comportamiento . La plantilla se utiliza para resaltar algoritmos similares que resuelven un problema específico. Analizamos la implementación en el lenguaje GOlang con usted , nos familiarizamos con las posibilidades del enfoque y descubrimos cuándo es mejor usarlo.





Me alegré de hablar contigo, Alex Versus . ¡Buena suerte!








All Articles