Olá a todos, amigos. Meu nome é Alex e sou desenvolvedor e criador de software profissional na indústria da web. Venho estudando idiomas há muitos anos, compartilhando minha experiência com outras pessoas.
Hoje eu quero falar com você sobre o padrão de design de estratégia. Vou tentar transmitir a você os princípios e a essência do modelo sem água e mostrar como aplicá-lo na prática.
Qual é o ponto?
Estratégia de padrão de projeto ou padrão de projeto Estratégia refere-se a padrões de projeto comportamentais. Sua tarefa é identificar algoritmos semelhantes que resolvam um problema específico. A implementação dos algoritmos é feita em classes separadas e a capacidade de selecionar algoritmos é fornecida em tempo de execução.
O template possibilita no processo de execução escolher uma estratégia (algoritmo, ferramenta, abordagem) para resolver o problema.
Qual é o problema?
Vamos considerar as tarefas em cuja solução essa abordagem pode ser aplicada.
Imagine que você se depara com a tarefa de escrever um portal da web para busca de imóveis. MVP ( Produto Mínimo Viável ) ou produto mínimo funcional foi projetado e priorizado por sua equipe de Gerentes de Produto e o portal deve ter funcionalidade para compradores de apartamentos. Ou seja, os usuários-alvo do seu produto são, em primeiro lugar, aqueles que procuram uma nova casa para comprar. Um dos recursos mais solicitados deve ser a capacidade de:
Selecione a área no mapa onde o comprador deseja comprar uma casa
E indique a faixa de preços dos preços dos apartamentos para filtragem.
, . , , , .
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?
. -, -.
- . -, -.
. .
. , -, .
Amigos, conhecemos o padrão de design comportamental Strategy . O modelo é usado para destacar algoritmos semelhantes que resolvem um problema específico. Vimos a implementação na linguagem GOlang com você , nos familiarizamos com as possibilidades da abordagem e descobrimos quando é melhor usá-la.
Fiquei feliz em falar com você, Alex Versus . Boa sorte!