Classe que possui 2 associações, onde posicionar atributo  XML
Índice dos Fóruns » Desenvolvimento Web
Autor Mensagem
danielolimpio
Entusiasta Java

Membro desde: 14/09/2007 03:29:54
Mensagens: 16
Offline

Olá,
Estou desenvolvendo um projeto onde tenho (pequeno exemplo do contexto para facilitar compreensão):
- Cliente publica Anuncio gera Cobranca
- Cliente contrata Plano gera Cobranca

Tenho dúvida sobre onde posicionar os atributos para representar a Cobranca, tipo:
- Adicionar atributo Cobranca nas classes que geram cobranca
- Criar classes que herdam de Cobranca, exemplo: CobrancaAnuncio para relacionar com Anuncio
- Adicionar atributo na classe Cobranca para identificar a origem da cobrança

- Enfim, um sugestão de como modelar para que possa gerar cobrança ára o cliente de qualquer associação

OBS: Segue imagem em anexo
[Thumb - modelagem.jpg]
 Nome do arquivo modelagem.jpg [Disk] Download
 Descrição
 Tamanho 29 Kbytes
 Baixado:  4 vez(es)

jakefrog
GUJ Expert
[Avatar]

Membro desde: 22/01/2007 22:00:53
Mensagens: 4192
Online

- Adicionar atributo Cobranca nas classes que geram cobranca
- Acho uma boa opção. [=
- Criar classes que herdam de Cobranca, exemplo: CobrancaAnuncio para relacionar com Anuncio
- Pq você faria isso? CobrancaAnuncio vai ter comportamento diferente de CobrancaPlano? Se seu relacionamento não for bidirecional (cliente.cobranças e cobrança.cliente) vc não precisaria fazer isso. Bastaria um Enum para dizer se é cobrança de Anuncio ou de Plano
- Adicionar atributo na classe Cobranca para identificar a origem da cobrança
- Acho uma boa opção. [= Crie um enum boladão e coloque lá.

Meu blog sobre java uaiHebert.com
Conceitos OO - Diga, não pergunte!, Lei de Demeter
TDD Primeiros Passos, JUnit com HSQLDB, JPA e Hibernate, Cobertura de testes com JUnit Ant e Emma, Cobrindo seus testes com Cobertura, JUnit, HSQLDB, JPA
Código Limpo: Partes: 01,02,03,04,05
Web/JSF - Criando um WebServer, Tratando Exceções, Autenticação de Usuários (Filter/Servlet), JSF - Hello World, AutoComplete, JSF: Converter e Bean Auto Complete, Validação de Login de Usuário com JSF e JAAS, JSF Exibindo Objeto e Mensagens após Redirect, JSF Exemplos Simples com Ajax, JSF Parametros por Get Request RESTFullAplicação Web Completa JSF EJB JPA JAAS, Lazy JSF Datatable Pagination (Primefaces)
Design Pattern - Strategy, Design Pattern - Observer (Parte 01), Design Pattern - Observer (Parte 02)
Business (JPA)- Hibernate 3 com JPA 2, Create schema script: Ant, Hibernate 3 e JPA 2, TableGenerator Chave Primária Simples, SequenceGenerator,Chave Primária Composta, Mapeando Datas (Date) e Enum, Mapeando Duas Tabelas em uma Classe, @OneToOne Unidirecional e Bidirecional, @OneToMany e @ManyToOne Unidirecional e Bidirecional, @ManyToMany Unidirecional e Bidirecional, Ordernando listas e utilizando Map como atributo mapeado,Uma tabela por herança, JPA Uma Classe por Sub-Classe, JPA Consultas e Dicas, [HOT]Quatro soluções para LazyInitializationException[HOT]

SCJP(1.6 - Ingles - 29/12/2009)
SCWCD(1.5 - Ingles - 30/06/2010)

Vamos em frente que atrás vem gente!
asandrob
Debugger
[Avatar]

Membro desde: 21/09/2009 09:09:16
Mensagens: 64
Localização: Gravataí-RS
Offline

Anuncio não seria um tipo de Plano???

Alex Borges
jakefrog
GUJ Expert
[Avatar]

Membro desde: 22/01/2007 22:00:53
Mensagens: 4192
Online

asandrob wrote:Anuncio não seria um tipo de Plano???

Teoricamente que não, pois plano tem pagamento mensal e anúncio é avulso.

Depende dos requisitos né? Vamos esperar ele responder.

Meu blog sobre java uaiHebert.com
Conceitos OO - Diga, não pergunte!, Lei de Demeter
TDD Primeiros Passos, JUnit com HSQLDB, JPA e Hibernate, Cobertura de testes com JUnit Ant e Emma, Cobrindo seus testes com Cobertura, JUnit, HSQLDB, JPA
Código Limpo: Partes: 01,02,03,04,05
Web/JSF - Criando um WebServer, Tratando Exceções, Autenticação de Usuários (Filter/Servlet), JSF - Hello World, AutoComplete, JSF: Converter e Bean Auto Complete, Validação de Login de Usuário com JSF e JAAS, JSF Exibindo Objeto e Mensagens após Redirect, JSF Exemplos Simples com Ajax, JSF Parametros por Get Request RESTFullAplicação Web Completa JSF EJB JPA JAAS, Lazy JSF Datatable Pagination (Primefaces)
Design Pattern - Strategy, Design Pattern - Observer (Parte 01), Design Pattern - Observer (Parte 02)
Business (JPA)- Hibernate 3 com JPA 2, Create schema script: Ant, Hibernate 3 e JPA 2, TableGenerator Chave Primária Simples, SequenceGenerator,Chave Primária Composta, Mapeando Datas (Date) e Enum, Mapeando Duas Tabelas em uma Classe, @OneToOne Unidirecional e Bidirecional, @OneToMany e @ManyToOne Unidirecional e Bidirecional, @ManyToMany Unidirecional e Bidirecional, Ordernando listas e utilizando Map como atributo mapeado,Uma tabela por herança, JPA Uma Classe por Sub-Classe, JPA Consultas e Dicas, [HOT]Quatro soluções para LazyInitializationException[HOT]

SCJP(1.6 - Ingles - 29/12/2009)
SCWCD(1.5 - Ingles - 30/06/2010)

Vamos em frente que atrás vem gente!
asandrob
Debugger
[Avatar]

Membro desde: 21/09/2009 09:09:16
Mensagens: 64
Localização: Gravataí-RS
Offline

Plano tem e 1..N Cobrança
Plano do tipo Anuncio pode se encaixar nessa situação.

Sei lá, só um brain storm.

Alex Borges
danielolimpio
Entusiasta Java

Membro desde: 14/09/2007 03:29:54
Mensagens: 16
Offline

asandrob wrote:Anuncio não seria um tipo de Plano???


A regra de negócio é:
Anúncio gera Cobranca (1:1)
Cliente ao contratar Plano gera Cobranca (1:1), pois o a contratação terá data inicio e data fim, ao expirar, ele faria nova contratação

asandrob wrote:Pq você faria isso? CobrancaAnuncio vai ter comportamento diferente de CobrancaPlano? Se seu relacionamento não for bidirecional (cliente.cobranças e cobrança.cliente) vc não precisaria fazer isso. Bastaria um Enum para dizer se é cobrança de Anuncio ou de Plano


Realmente não vão ter comportamento diferentes, a única justificativa para essa idéia foi para poder através da cobrança chegar até a classe que gerou a mesma

Outros itens importantes da regra de negócio é:
- Permitir que consulte todas as consultes todas as cobranças do cliente
- Ao fazer uma consulta de por exemplo, cobranças do mês, permitir saber o cliente do cobrança, fica a dúvida:
Dúvida: Vocês colocariam um atributo Cliente em Cobranca? Mesmo sendo redundante, pois o Cliente já está associado a Anúncio ou ClientePlano, se não como faria para ter essa consulta
 
Índice dos Fóruns » Desenvolvimento Web
Ir para:   
Powered by JForum 2.1.8 © JForum Team