Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
5 changes: 5 additions & 0 deletions abstractFactory/CarroPopular.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
package br.padroes.abstractFactory;

public interface CarroPopular {
void exibirInfoPopular();
}
5 changes: 5 additions & 0 deletions abstractFactory/CarroSedan.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
package br.padroes.abstractFactory;

public interface CarroSedan {
void exibirInfoSedan();
}
20 changes: 20 additions & 0 deletions abstractFactory/Cliente.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
package br.padroes.abstractFactory;

public class Cliente {
public static void main(String[] args) {
FabricaDeCarro fabrica = new FabricaFiat();
CarroSedan sedan = fabrica.criarCarroSedan();
CarroPopular popular = fabrica.criarCarroPopular();
sedan.exibirInfoSedan();
System.out.println();
popular.exibirInfoPopular();
System.out.println();

fabrica = new FabricaFord();
sedan = fabrica.criarCarroSedan();
popular = fabrica.criarCarroPopular();
sedan.exibirInfoSedan();
System.out.println();
popular.exibirInfoPopular();
}
}
6 changes: 6 additions & 0 deletions abstractFactory/FabricaDeCarro.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
package br.padroes.abstractFactory;

public interface FabricaDeCarro {
CarroSedan criarCarroSedan();
CarroPopular criarCarroPopular();
}
15 changes: 15 additions & 0 deletions abstractFactory/FabricaFiat.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
package br.padroes.abstractFactory;

public class FabricaFiat implements FabricaDeCarro {

@Override
public CarroSedan criarCarroSedan() {
return new Siena();
}

@Override
public CarroPopular criarCarroPopular() {
return new Palio();
}

}
15 changes: 15 additions & 0 deletions abstractFactory/FabricaFord.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
package br.padroes.abstractFactory;

public class FabricaFord implements FabricaDeCarro {

@Override
public CarroSedan criarCarroSedan() {
return new FiestaSedan();
}

@Override
public CarroPopular criarCarroPopular() {
return new Fiesta();
}

}
10 changes: 10 additions & 0 deletions abstractFactory/Fiesta.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
package br.padroes.abstractFactory;

public class Fiesta implements CarroPopular {

@Override
public void exibirInfoPopular() {
System.out.println("Modelo: Fiesta\nF�brica: Ford\nCategoria:Popular");
}

}
10 changes: 10 additions & 0 deletions abstractFactory/FiestaSedan.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
package br.padroes.abstractFactory;

public class FiestaSedan implements CarroSedan {

@Override
public void exibirInfoSedan() {
System.out.println("Modelo: Fiesta\nF�brica:Ford\nCategoria:Sedan");
}

}
10 changes: 10 additions & 0 deletions abstractFactory/Palio.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
package br.padroes.abstractFactory;

public class Palio implements CarroPopular {

@Override
public void exibirInfoPopular() {
System.out.println("Modelo: Palio\nF�brica: Fiat\nCategoria:Popular");
}

}
10 changes: 10 additions & 0 deletions abstractFactory/Siena.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
package br.padroes.abstractFactory;

public class Siena implements CarroSedan {

@Override
public void exibirInfoSedan() {
System.out.println("Modelo: Siena\nF�brica: Fiat\nCategoria:Sedan");
}

}
29 changes: 29 additions & 0 deletions templateMethod/Cliente.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,29 @@
package br.padroes.templateMethod;

public class Cliente {
public static void main(String[] args) {

PlayList minhaPlayList = new PlayList(ModoDeReproducao.porNome);
minhaPlayList.adicionarMusica("Everlong", "Foo Fighters", "1997", 5);
minhaPlayList.adicionarMusica("Song 2", "Blur", "1997", 4);
minhaPlayList.adicionarMusica("American Jesus", "Bad Religion", "1993",
3);
minhaPlayList.adicionarMusica("No Cigar", "Milencollin", "2001", 2);
minhaPlayList.adicionarMusica("Ten", "Pearl Jam", "1991", 1);

System.out.println("=== Lista por Nome de Musica ===");
minhaPlayList.mostrarListaDeReproducao();

System.out.println("\n=== Lista por Autor ===");
minhaPlayList.setModoDeReproducao(ModoDeReproducao.porAutor);
minhaPlayList.mostrarListaDeReproducao();

System.out.println("\n=== Lista por Ano ===");
minhaPlayList.setModoDeReproducao(ModoDeReproducao.porAno);
minhaPlayList.mostrarListaDeReproducao();

System.out.println("\n=== Lista por Estrela ===");
minhaPlayList.setModoDeReproducao(ModoDeReproducao.porEstrela);
minhaPlayList.mostrarListaDeReproducao();
}
}
5 changes: 5 additions & 0 deletions templateMethod/ModoDeReproducao.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
package br.padroes.templateMethod;

public enum ModoDeReproducao {
porNome, porAutor, porAno, porEstrela
}
15 changes: 15 additions & 0 deletions templateMethod/MusicaMP3.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
package br.padroes.templateMethod;

public class MusicaMP3 {
String nome;
String autor;
String ano;
int estrelas;

public MusicaMP3(String nome, String autor, String ano, int estrela) {
this.nome = nome;
this.autor = autor;
this.ano = ano;
this.estrelas = estrela;
}
}
13 changes: 13 additions & 0 deletions templateMethod/OrdenadorPorAno.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
package br.padroes.templateMethod;

public class OrdenadorPorAno extends OrdenadorTemplate {

@Override
public boolean isPrimeiro(MusicaMP3 musica1, MusicaMP3 musica2) {
if (musica1.ano.compareToIgnoreCase(musica2.ano) <= 0) {
return true;
}
return false;
}

}
13 changes: 13 additions & 0 deletions templateMethod/OrdenadorPorAutor.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
package br.padroes.templateMethod;

public class OrdenadorPorAutor extends OrdenadorTemplate {

@Override
public boolean isPrimeiro(MusicaMP3 musica1, MusicaMP3 musica2) {
if (musica1.autor.compareToIgnoreCase(musica2.autor) <= 0) {
return true;
}
return false;
}

}
13 changes: 13 additions & 0 deletions templateMethod/OrdenadorPorEstrela.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
package br.padroes.templateMethod;

public class OrdenadorPorEstrela extends OrdenadorTemplate {

@Override
public boolean isPrimeiro(MusicaMP3 musica1, MusicaMP3 musica2) {
if (musica1.estrelas > musica2.estrelas) {
return true;
}
return false;
}

}
13 changes: 13 additions & 0 deletions templateMethod/OrdenadorPorNome.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
package br.padroes.templateMethod;

public class OrdenadorPorNome extends OrdenadorTemplate {

@Override
public boolean isPrimeiro(MusicaMP3 musica1, MusicaMP3 musica2) {
if (musica1.nome.compareToIgnoreCase(musica2.nome) <= 0) {
return true;
}
return false;
}

}
26 changes: 26 additions & 0 deletions templateMethod/OrdenadorTemplate.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,26 @@
package br.padroes.templateMethod;

import java.util.ArrayList;

public abstract class OrdenadorTemplate {
public abstract boolean isPrimeiro(MusicaMP3 musica1, MusicaMP3 musica2);

protected ArrayList<MusicaMP3> ordenarMusica(ArrayList<MusicaMP3> lista) {
ArrayList<MusicaMP3> novaLista = new ArrayList<MusicaMP3>();
for (MusicaMP3 musicaMP3 : lista) {
novaLista.add(musicaMP3);
}

for (int i = 0; i < novaLista.size(); i++) {
for (int j = i; j < novaLista.size(); j++) {
if (!isPrimeiro(novaLista.get(i), novaLista.get(j))) {
MusicaMP3 temp = novaLista.get(j);
novaLista.set(j, novaLista.get(i));
novaLista.set(i, temp);
}
}
}

return novaLista;
}
}
63 changes: 63 additions & 0 deletions templateMethod/PlayList.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,63 @@
package br.padroes.templateMethod;

import java.util.ArrayList;

public class PlayList {
protected ArrayList<MusicaMP3> musicas;
protected OrdenadorTemplate ordenador;

public PlayList(ModoDeReproducao modo) {
musicas = new ArrayList<MusicaMP3>();
switch (modo) {
case porAno:
ordenador = new OrdenadorPorAno();
break;
case porAutor:
ordenador = new OrdenadorPorAutor();
break;
case porEstrela:
ordenador = new OrdenadorPorEstrela();
break;
case porNome:
ordenador = new OrdenadorPorNome();
break;
default:
break;
}
}

public void setModoDeReproducao(ModoDeReproducao modo) {
ordenador = null;
switch (modo) {
case porAno:
ordenador = new OrdenadorPorAno();
break;
case porAutor:
ordenador = new OrdenadorPorAutor();
break;
case porEstrela:
ordenador = new OrdenadorPorEstrela();
break;
case porNome:
ordenador = new OrdenadorPorNome();
break;
default:
break;
}
}

public void adicionarMusica(String nome, String autor, String ano,
int estrela) {
musicas.add(new MusicaMP3(nome, autor, ano, estrela));
}

public void mostrarListaDeReproducao() {
ArrayList<MusicaMP3> novaLista = new ArrayList<MusicaMP3>();
novaLista = ordenador.ordenarMusica(musicas);

for (MusicaMP3 musica : novaLista) {
System.out.println(musica.nome + " - " + musica.autor + "\n Ano: "
+ musica.ano + "\n Estrelas: " + musica.estrelas);
}
}
}