Skip to content

Commit

Permalink
packages, ObjectFactory
Browse files Browse the repository at this point in the history
  • Loading branch information
vigusmao committed May 19, 2021
1 parent 1b7ddef commit a3ba832
Show file tree
Hide file tree
Showing 26 changed files with 276 additions and 27 deletions.
8 changes: 8 additions & 0 deletions Album/src/Colecionavel.java
@@ -0,0 +1,8 @@
import java.awt.*;

public interface Colecionavel {

Image getImagem();

int getPosicao();
}
14 changes: 14 additions & 0 deletions Album/src/ColecionavelFactory.java
@@ -0,0 +1,14 @@
public class ColecionavelFactory {

public static Colecionavel create(String tipo, int posicao, String urlDaImagem) {

switch (tipo.toLowerCase()) {
case "figurinha":
return new Figurinha(posicao, urlDaImagem);
case "selo":
return new Selo(posicao, urlDaImagem, 0);
default:
return null;
}
}
}
2 changes: 1 addition & 1 deletion Album/src/Figurinha.java
@@ -1,6 +1,6 @@
import java.awt.*;

public class Figurinha {
public class Figurinha implements Colecionavel {

private final Image imagem;
private final int posicao;
Expand Down
10 changes: 6 additions & 4 deletions Album/src/Repositorio.java
@@ -1,16 +1,18 @@
import java.util.ArrayList;
import java.util.List;

public class Repositorio {
public class Repositorio<T extends Colecionavel> {

private static final String PREFIXO_URL_IMAGENS = "http://www.nossoalbum.com.br/imagens/";

private List<Figurinha> todasAsFigurinhas;
private List<T> todasAsFigurinhas;

public Repositorio(String sufixoUrlImagens, int quantFigurinhas) {
@SuppressWarnings("unchecked")
public Repositorio(String sufixoUrlImagens, int quantFigurinhas, T objetoReferencia) {
todasAsFigurinhas = new ArrayList<>(quantFigurinhas);
for (int i = 1; i <= quantFigurinhas; i++) {
Figurinha fig = new Figurinha(i, PREFIXO_URL_IMAGENS + sufixoUrlImagens);
T fig = (T) ColecionavelFactory.create(
objetoReferencia.getClass().getName(), i, PREFIXO_URL_IMAGENS + sufixoUrlImagens);
todasAsFigurinhas.add(fig);
}
}
Expand Down
18 changes: 18 additions & 0 deletions Album/src/Selo.java
@@ -0,0 +1,18 @@
import java.awt.*;

public class Selo implements Colecionavel {

public Selo(int posicao, String urlDaImagem, float valorMonetario) {

}

@Override
public Image getImagem() {
return null;
}

@Override
public int getPosicao() {
return 0;
}
}
124 changes: 124 additions & 0 deletions LojaVirtual/.idea/uiDesigner.xml

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

2 changes: 1 addition & 1 deletion LojaVirtual/LAB3.txt
@@ -1,6 +1,6 @@
LAB 3:

Faça os unit testes em LojaTest passarem,
Faça os unit testes em test.LojaTest passarem,
segundo o espírito do Test-Driven Development.

PS.: Tente não modificar os testes!
Expand Down
15 changes: 11 additions & 4 deletions LojaVirtual/src/Loja.java → LojaVirtual/src/controle/Loja.java
@@ -1,18 +1,25 @@
package controle;

import modelo.Usuario;
import modelo.produto.Produto;
import util.Transportador;
import util.Vendavel;

import java.awt.*;
import java.util.HashMap;
import java.util.Map;
import java.util.Set;

/**
* Implementa uma loja virtual para qualquer tipo de Vendavel,
* Implementa uma loja virtual para qualquer tipo de util.Vendavel,
* desde que tenham descrição, preço e dimensões.
*
* Essa classe será um singleton, isto é, permitiremos apenas
* uma instância desde objeto no sistema.
*/
public class Loja<T extends Vendavel> { // SEMPRE extends

static final float PRECO_DEFAULT = 1.99f;
public static final float PRECO_DEFAULT = 1.99f;

private Map<T, InfoVendavel> infoByVendavel;

Expand All @@ -24,7 +31,7 @@ public class Loja<T extends Vendavel> { // SEMPRE extends


static {
System.out.println("Estou subindo a classe Loja...");
System.out.println("Estou subindo a classe controle.Loja...");
}

public Loja(Transportador entregador) {
Expand Down Expand Up @@ -95,7 +102,7 @@ private Usuario obterUsuario(long cpf) {
* @param vendavel o vendavel
* @param quantidadeDesejada a quantidade
*
* @return um Recibo indicando a venda feita, se o vendavel existia (em quantidade suficiente)
* @return um controle.Recibo indicando a venda feita, se o vendavel existia (em quantidade suficiente)
* no vendavels da loja; null, caso o usuário ou o vendavel sejam desconhecidos,
* ou não haja quantidade suficiente do vendavel desejado
*/
Expand Down
@@ -1,3 +1,8 @@
package controle;

import modelo.Usuario;
import util.Vendavel;

public class Recibo {

private float valorTotal;
Expand All @@ -22,7 +27,7 @@ public Usuario getUsuario() {

@Override
public String toString() {
return String.format("Recibo no valor de R$%.2f para %s " +
return String.format("controle.Recibo no valor de R$%.2f para %s " +
"referente à compra de %d unidades de %s",
this.valorTotal, usuario.getNome(), this.quantidade,
this.vendavel.getDescricao());
Expand Down
4 changes: 4 additions & 0 deletions LojaVirtual/src/exception/ItemEsgotadoException.java
@@ -0,0 +1,4 @@
package exception;

public class ItemEsgotadoException extends Exception {
}
@@ -1,3 +1,5 @@
package modelo;

import java.util.Objects;

public class Usuario {
Expand Down
@@ -1,3 +1,5 @@
package modelo.produto;

public class Brinquedo extends Produto implements LivroOuBrinquedo {

public Brinquedo(String descricao) {
Expand Down
@@ -1,7 +1,10 @@
package modelo.produto;

public class Livro extends Produto implements LivroOuBrinquedo {

private String nome;
private String editora;
private int anoPublicacao;

public Livro(String nome, String editora) {
super(formatarDescricaoLivro(nome, editora));
Expand All @@ -22,7 +25,11 @@ public String getAutor() {
}

public int getAnoDePublicacao() {
return 0; // ToDo IMPLEMENT ME!!!!
return anoPublicacao;
}

public void setAnoPublicacao(int anoPublicacao) {
this.anoPublicacao = anoPublicacao;
}

public String getNome() {
Expand All @@ -41,7 +48,7 @@ public void setEditora(String editora) {
this.editora = editora;
}

private static String formatarDescricaoLivro(String nome, String editora) {
public static String formatarDescricaoLivro(String nome, String editora) {
return String.format("Livro: %s (editora: %s)", nome, editora);
}

Expand Down
@@ -1,3 +1,7 @@
package modelo.produto;

import util.Vendavel;

public interface LivroOuBrinquedo extends Vendavel {

}
@@ -1,3 +1,9 @@
package modelo.produto;

import util.Transportavel;
import util.Dimensoes;
import util.Vendavel;

import java.awt.*;
import java.util.Objects;

Expand Down
@@ -1,3 +1,5 @@
package modelo.servico;

import java.util.Date;

public class Servico {
Expand Down
@@ -1,3 +1,8 @@
package modelo.servico;

import util.Transportador;
import util.Transportavel;

public class ServicoEntregas extends Servico implements Transportador {

@Override
Expand Down
@@ -1,3 +1,7 @@
package modelo.servico;

import util.Vendavel;

public class ServicoImpressao extends Servico implements Vendavel {

@Override
Expand Down

0 comments on commit a3ba832

Please sign in to comment.