Bom estava eu na aula de PDS ano passado e vi um padrao que sabia q ia usar logo de cara, porque? ele reduz codigo! e deixa o codigo bonito e OO. ehhehe

o Design Pattern Template Method e Factoy Method são muito uteis pois tiram codigos inuteis da sua classe concreta e centraliza tudo em uma classe abstrata… ou seja seu codigo vai ficar limpo e lindo… OO =D SRP

Pra que serve?

O themplete method como o nome diz é um methodo que vc ia ter q fazer nas sub classes e teria que reescrevelo em todas as subclasses, igual em todas elas, mudando apenas uma regiao… o template method ajuda nesse ponto, pois se vc escrever o methodo na classe abstrata ele vai ser herdado pelas subclasses logo vc vai ter q modificar apenas akele pequeno fragmento de codigo que cada classe faz diferente…

1º Faça o seu templete method…

public Algarism getAlgarism(int code){
  if(code9){
   throw new IllegalArgumentException("Só pode estar entre 0 e 9 tolinho...");
  }else{
   if (this.algarismos[code]!=null){
    return this.algarismos[code];
   }else{
    Algarism alg = this.create(code);

    if (alg == null)
     throw new NullPointerException("Algarismo esta nulo...");

    this.algarismos[code]=alg;
    return this.algarismos[code];
   }
  }
 }

veja q temos uma abstração Algarism que recebe um this.crate(code>); esse vai ser o nosso metodo que muda nas subclasses, logo teremos que crialo como abstrato, para que seja forçada a criação dele nas subclasses...

protected abstract Algarism create(int code);

2º pronto agora vamos nas subclasses e apenas criamos o metodo create... que é o nosso Factoy Method:

protected Algarism create(int code){
  return new SymbolAlgarism(code);
 }
 protected Algarism create(int code){
  return new TextAlgarism(code);
 }

Nenhum post foi relacionado a este