Duvida no padrão Strategy

.:N:.


Er bien… comprei o livro Use a cabeça - padrões de projeto e estou no inicio e realmente é muito bom, o primeiro projeto explicado é o Strategy… entendi como funciona, até criei uns programinhas meu para exemplo.
.
Agora a dúvida. :idea:
.
Alguem que já trabalha na área poderia me dar um exemplo real? Alguem exemplo que use este padrão que não seja o simples usado no livro… pesquisei na internet e encontrei outros exemplos, mas nenhum que me mostre realmente como eu poderia aplicar na vida real… bem é isso, gostaria apenas de um exemplo pratico real.
.
See ya!


.:N:.

.:N:.


Eu sei que a pergunta foi meio vaga… meio dificil de responder, eu coloquei a questão aqui pq sei que muitos já trabalham com java a séculos e conhecem este padrão, pesquisando ontem encontrei alguns exemplos interessantes e reais do funcionamento deste padrão, mas seria interessante um exemplo de alguem daqui.
.
Não queria um exemplo detalhado, um tutorial… neste exemplo que encontrei um cara usando o padrão Strategy
.

.
Criou esta descrição para a explicação.
.

[quote]Imagine que temos um pequeno sistema que apresenta uma classe abstrata Documento que possui um método chamado imprimir();

Imagine também que temos duas classes :

  1. Legal - que herda da classe Documento e sobrescreve o método imprimir() para imprimir documentos Legais;
  2. Tecnico - que também herda de Documento e sobrescreve o método imprimir() para imprimir documentos técnicos;

Perceba que eu poderia ter muitas outras classes herdando de documento e cada uma sobrescrevendo o método imprimir() para atender um requisito de impressão diferente como : HTML , PDF, TEXTO, RTF , etc.

[/quote]
.

.
.
Outro exemplo que encontrei segue a seguinte descrição.

[quote] magine que uma loja pretende aplicar uma política de descontos no preço dos seus produtos bem agressiva onde cada produto poderá, de acordo com as datas especiais do calendário: dia das mães , dia dos pais , dia das crianças , páscoa, natal , etc…, ter um preço promocional.

Neste cenário teríamos para cada data um tipo de desconto diferente que deverá ser implementado por um algoritmo diferente.

1- Primeiro definimos uma interface chamada IPromocao contendo a definição de um método chamado desconto();[/quote]
.
E explica mais ou menos oq fez.
.

.
.
E explicou mais ou menos como procedeu para a implementação das classes. Mas deixa quieto então… volto a este ponto só para não deixar em branco mesmo. Encontrei esta matéria neste link: http://www.macoratti.net/08/08/net_stgy.htm
Bem é isso :slight_smile:

See ya!


.:N:.

Acho que esse é, de longe, um dos padrões mais usados.

Se você olhar, o JImagePanel: http://www.guj.com.br/posts/list/56248.java#295271

Ele usa o Strategy para definir como pintar a imagem na tela.

Outro exemplo está aqui: http://www.guj.com.br/posts/list/55885.java#293436

Sempre que tiver um switch, desconfie que ele pode ser refatorado usando o padrão Strategy. O Strategy é a opção natural quando você quer fornecer escolhas para o usuário, e quer que outros programadores estendam as opções de escolhas posteriormente.

.:N:.


Pois é… eu tinha feito um programa para calculadora que usava o Switch para escolher o calculo que a pessoa deseja fazer, estudando este padrão consegui refaze-lo sem a necessidade do uso do Switch, o ponto é aprender a adapta-lo a este tipo de situação apartir de agora…
.
ViniGodoy, sei que trabalha a um bom tempo com Java então me responda uma cousa, dos padrões disponiveis quais os que mais usa com uma frequencia maior? São muitos padrões… agora quais devo realmente focar?
.
See ya!


.:N:.

Dos padrões do GoF são: Strategy, Factory Method, Façade, Decorator, Composite e Proxy.

Com relativa frequência o FlyWeight. Poucas vezes usei o Visitor. E acho que nunca usei o Memento.

E abandonei o uso do Singleton.