| Autor |
Mensagem |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 09/02/2012 01:30:31
|
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
|
| Nome do arquivo |
modelagem.jpg |
Download
|
| Descrição |
|
| Tamanho |
29 Kbytes
|
| Baixado: |
4 vez(es) |
|
|
|
 |
|
|
![[Post New]](/templates/default/images/icon_minipost_new.gif) 09/02/2012 06:04:19
|
jakefrog
GUJ Expert
![[Avatar]](/images/avatar/6e2400ec18b6f1952f1053c65df7a8b6.png)
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! |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 09/02/2012 07:00:51
|
asandrob
Debugger
![[Avatar]](/images/avatar/bbac73489b26653f6067219f44a7df04.png)
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 |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 09/02/2012 07:12:15
|
jakefrog
GUJ Expert
![[Avatar]](/images/avatar/6e2400ec18b6f1952f1053c65df7a8b6.png)
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! |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 09/02/2012 07:22:05
|
asandrob
Debugger
![[Avatar]](/images/avatar/bbac73489b26653f6067219f44a7df04.png)
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 |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 09/02/2012 09:39:15
|
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
|
|
|
 |
|
|
|
|