| Autor |
Mensagem |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 28/07/2011 16:16:11
|
davilima81
Entusiasta Java
![[Avatar]](/images/avatar/1921e14349820cc66e19220da2839247.png)
Membro desde: 30/12/2007 17:44:56
Mensagens: 17
Localização: Fortaleza - Ce
Offline
|
Caros Javaneses,
Qual das modelagens é a correta?
Estou tendo dificuldades em entender padrões de Projetos
Não sei se penso na perfomance do sistema ou na ótima modelagem do sistema.
|
| Nome do arquivo |
modelagem1_fruta.jpg |
Download
|
| Descrição |
Modelagem Herança |
| Tamanho |
61 Kbytes
|
| Baixado: |
26 vez(es) |
|
| Nome do arquivo |
Class Modelagem Composição.jpg |
Download
|
| Descrição |
Modelagem Composição e Herança |
| Tamanho |
73 Kbytes
|
| Baixado: |
29 vez(es) |
This message was edited 3 times. Last update was at 28/07/2011 16:31:15
|
Davi Ferreira de Lima
Técnico em EletroEletrônica
Técnico em Automação
Analista de Sistemas I
Perfil Profissional: http://br.linkedin.com/in/davilima81 |
|
|
 |
|
|
![[Post New]](/templates/default/images/icon_minipost_new.gif) 29/07/2011 08:17:07
|
davilima81
Entusiasta Java
![[Avatar]](/images/avatar/1921e14349820cc66e19220da2839247.png)
Membro desde: 30/12/2007 17:44:56
Mensagens: 17
Localização: Fortaleza - Ce
Offline
|
Tentarei ser mais específico, existe a modelagem de um sistema OO com banco OO(exemplo:Caché) e a outra com banco Relacional(PostgreSQL) que é o meu caso.
Ai veio a dúvida usar ou não usar Herança ?
package com.frutacor.producao;
/**
* @author DAVI FERREIRA DE LIMA
* @author CRISTIANO SALES
*
*/
import java.io.Serializable;
import java.util.Date;
import javax.persistence.Basic;
import javax.persistence.Column;
import javax.persistence.DiscriminatorColumn;
import javax.persistence.DiscriminatorType;
import javax.persistence.Entity;
import javax.persistence.EnumType;
import javax.persistence.Enumerated;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.Inheritance;
import javax.persistence.SequenceGenerator;
import javax.persistence.Table;
import com.frutacor.enums.EnuTipoUnidadePeso;
import com.frutacor.seguranca.BtpUsuario;
/**
*
*
* ENTIDADE QUE REPRESENTA O CONJUNTO DE FRUTAS DA EMPRESA
*
*
*
*/
@Entity
@Inheritance
@Table(name = "\"FRU_FRUTA\"")
@DiscriminatorColumn(name = "\"FRU_NOME_FRUTA\"", discriminatorType = DiscriminatorType.STRING)
@SequenceGenerator(name = "\"seqFruta\"", sequenceName = "\"seqFruta\"", allocationSize = 1)
public abstract class Fruta implements Cloneable,Serializable{
/**
*
*/
private static final long serialVersionUID = -4460758749463077394L;
/**
* É UTILIZADO ID DEVIDO AO MAPEAMENTO DO BANCO DE DADOS RELACIONAL
*/
@Id
@GeneratedValue(strategy = GenerationType.SEQUENCE, generator = "\"seqFruta\"")
@Column(name = "\"FRU_SEQ_FRUTA\"", nullable = false)
protected Long fruSeqFruta;
/**
* NOME DA FRUTA
*/
@Column(name = "\"FRU_NOME_FRUTA\"", nullable = false, length = 60)
protected String fruNomeFruta;
/**
* TIPO DA UNIDADE DE PESO
*/
@Basic(optional = false)
@Enumerated(EnumType.ORDINAL)
@Column(name = "\"FRU_UNIDADE_PESO_FRUTA\"", nullable = false, length = 2, columnDefinition = "NUMBER", precision = 0)
protected EnuTipoUnidadePeso fruTipoUnidadePesoFruta;
public Fruta(Long fruSeqFruta, String fruNomeFruta,
EnuTipoUnidadePeso fruTipoUnidadePesoFruta,
Date fruDatCadastroFruta,
BtpClassificacaoCientifica btpClassificacaoCientifica,
BtpUsuario btpUsuario) {
super();
this.fruSeqFruta = fruSeqFruta;
this.fruNomeFruta = fruNomeFruta;
this.fruTipoUnidadePesoFruta = fruTipoUnidadePesoFruta;
}
public Long getFruSeqFruta() {
return fruSeqFruta;
}
public void setFruSeqFruta(Long fruSeqFruta) {
this.fruSeqFruta = fruSeqFruta;
}
public String getFruNomeFruta() {
return fruNomeFruta;
}
public void setFruNomeFruta(String fruNomeFruta) {
this.fruNomeFruta = fruNomeFruta;
}
public EnuTipoUnidadePeso getUnidadePesoProducao() {
return fruTipoUnidadePesoFruta;
}
public void setUnidadePesoProducao(EnuTipoUnidadePeso enuTipoUnidadePeso) {
this.fruTipoUnidadePesoFruta = enuTipoUnidadePeso;
}
}
package com.frutacor.producao;
import java.io.Serializable;
import java.util.Date;
import javax.persistence.Column;
import javax.persistence.DiscriminatorValue;
import javax.persistence.Entity;
import javax.persistence.EnumType;
import javax.persistence.Enumerated;
import javax.persistence.SequenceGenerator;
import javax.persistence.Table;
import javax.persistence.Temporal;
import javax.persistence.TemporalType;
import com.frutacor.enums.EnuTipoUnidadePeso;
import com.frutacor.seguranca.BtpUsuario;
@Entity
@Table(name = "\"BAN_BANANA\"")
@DiscriminatorValue("BANANA")
@SequenceGenerator(name = "seqBanana", sequenceName = "seqBanana", allocationSize = 1)
public class Banana extends Fruta implements Serializable,IBanana{
private static final long serialVersionUID = 3195685501727132993L;
@Enumerated(EnumType.ORDINAL)
@Column(name = "\"BAN_UNIDADE_PROUCAO_BANANA\"", nullable = false, length = 2, columnDefinition = "NUMBER", precision = 0)
protected EnuTipoUnidadePeso banUnidadeProducaoBanana;
@Column(name = "\"BAN_DAT_CADASTRO_BANANA\"", columnDefinition = "DATE")
@Temporal(TemporalType.DATE)
protected Date banDataCadastroBanana;
@Column(name = "\"BAN_PESO_MEDIO_BANANA\"", precision = 10, scale = 2)
protected Double banPesoMedioBanana;
@Column(name = "\"BAN_CICLO_BANANA\"", nullable = false, length = 2, columnDefinition = "NUMBER", precision = 0)
protected Long banCicloBanana;
@Column(name = "\"BAN_CICLO_PROUCAO_BANANA\"", nullable = false, length = 2, columnDefinition = "NUMBER", precision = 0)
protected Long banCicloProducaoBanana;
public Banana(Long fruSeqFruta, String fruNomeFruta,
EnuTipoUnidadePeso fruTipoUnidadePesoFruta,
Date fruDatCadastroFruta,
BtpClassificacaoCientifica btpClassificacaoCientifica,
BtpUsuario btpUsuario,
EnuTipoUnidadePeso banUnidadeProducaoBanana,
Date banDataCadastroBanana, Double banPesoMedioBanana,
Long banCicloBanana, Long banCicloProducaoBanana) {
super(fruSeqFruta, fruNomeFruta, fruTipoUnidadePesoFruta,
fruDatCadastroFruta, btpClassificacaoCientifica, btpUsuario);
this.banUnidadeProducaoBanana = banUnidadeProducaoBanana;
this.banDataCadastroBanana = banDataCadastroBanana;
this.banPesoMedioBanana = banPesoMedioBanana;
this.banCicloBanana = banCicloBanana;
this.banCicloProducaoBanana = banCicloProducaoBanana;
}
public Date getDataCadastro() {
return banDataCadastroBanana;
}
public void setDataCadastro(Date dataCadastro) {
this.banDataCadastroBanana = dataCadastro;
}
@Override
public Long getCiclo() {
return banCicloBanana;
}
@Override
public void setCiclo(Long ciclo) {
this.banCicloBanana = ciclo;
}
@Override
public Long getCicloProducao() {
return banCicloProducaoBanana;
}
@Override
public void setCicloProducao(Long cicloProducao) {
this.banCicloProducaoBanana = cicloProducao;
}
@Override
public Double getPesoMedio() {
return banPesoMedioBanana;
}
@Override
public void setPesoMedio(Double pesoMedio) {
this.banPesoMedioBanana = pesoMedio;
}
}
| Nome do arquivo |
Fruta.java |
Download
|
| Descrição |
Classe Abstrata Fruta |
| Tamanho |
3 Kbytes
|
| Baixado: |
26 vez(es) |
| Nome do arquivo |
Banana.java |
Download
|
| Descrição |
Classe Concreta Banana |
| Tamanho |
3 Kbytes
|
| Baixado: |
29 vez(es) |
This message was edited 2 times. Last update was at 29/07/2011 08:19:47
|
Davi Ferreira de Lima
Técnico em EletroEletrônica
Técnico em Automação
Analista de Sistemas I
Perfil Profissional: http://br.linkedin.com/in/davilima81 |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 19/11/2011 22:13:03
|
Jemerson
Thread.start()
![[Avatar]](/images/avatar/97b0724d4dc613ce5bde0fcbe9267b71.jpg)
Membro desde: 26/09/2009 22:53:37
Mensagens: 46
Localização: Serra/ES
Offline
|
Pelo que você postou,não consegui captar nenhuma forma de estruturar as suas classes a não ser por herança.
Por falar em estruturação,você inverteu a seta que indica que a classe Banana herda de fruta( e para as demais).
Mas se houvesse alguma forma de você estruturar esse modelo colocando composição, seria o mais indicado.
Vamos esperar para ver se alguém posta alguma sugestão que encaixe no seu modelo
Abraços.
|
J.S |
|
|
 |
|
|
|
|