1
resposta

Persistência e GUI referentes ao padrão Strategy

Olá. Considere o seguinte projeto ( Strategy):

public interface IPromocao{
    Double getDesconto(Venda venda);
}

public class PromocaoBlackFriday implements IPromocao{
    public Double getDesconto(Venda venda){
    return venda.getTotal() * .8;
}

public class PromocaoDeNatal implements IPromocao{
    public Double getDesconto(Venda venda){
    return venda.getTotal() * .5;
}

Dessa forma podemos estender o sistema criando outras promoções sem a necessidade de alterações nos clientes (OCP, Polimorfismo, etc). OK!

Minha análise recai sob dois aspectos: persistência e gui

Imagine que tenho a necessidade de escolher/setar via GUI uma promoção. Como listá-las? Como fazer com que esses objetos possam ser escolhidos? Teria que adicioná-los numa lista, além do acréscimo de um atributo descricao?

Creio que não seja possível acrescentar novas promoções (objetos), com regras específicas em tempo de execução, concordam? Pois, não bastaria passar apenas o valor da porcentagem, poderiam ser regras variadas.

Desculpe-me se não fui claro.

1 resposta

Acho que pelo que você tem em mente a GUI ia ficar muito estática. Você teria que fazer toda uma estrutura de banco de dados por trás para mandar pra model , que manda pra controller e essa sim cria uma view dinâmica.