| Autor |
Mensagem |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 02/08/2011 22:17:12
|
Bruno Reis
JavaChild
Membro desde: 18/10/2010 16:41:46
Mensagens: 101
Offline
|
Saudações Pessoal!
Que problemas poderei ter nesta abstração?
Como poderei instanciar uma pessoa a partir de seu papel?
|
| Nome do arquivo |
ABSTRACAO_PF_PJ_CLIENTE_VENDEDOR.JPG |
Download
|
| Descrição |
Abstracao |
| Tamanho |
17 Kbytes
|
| Baixado: |
16 vez(es) |
|
|
|
 |
|
|
![[Post New]](/templates/default/images/icon_minipost_new.gif) 03/08/2011 02:03:23
|
marcoslogan
JavaGuru
Membro desde: 09/11/2008 07:07:31
Mensagens: 217
Offline
|
você pode até instanciar agora vc tem que saber qual o papel da classe pessoa na sua aplicação, e quando vc deve instanciá-la.
geralmente, a classe pessoa é uma classe abstrata, eu não colocaria lá a classe tipo atributo, eu colocaria assim:
usando herança
Outro exemplo
Conta Corrente e Poupança.
As duas são um exemplo de conta certo?
se eu fosse seguir o seu exemplo eu teria que ter uma classe intermediária. TipoConta. Essa classe faria oq, qual a finalidade dela.
Eu faria assim:
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 03/08/2011 07:06:16
|
leoramos
GUJ Ranger
![[Avatar]](/images/avatar/51e99940fd54d7566cb8e00b9e029bb9.jpg)
Membro desde: 28/03/2008 12:22:12
Mensagens: 845
Localização: Florianópolis / SC
Offline
|
Cara, por experiência própria, eu não coloco Pessoa Jurídica e Pessoa Física na mesma hierarquia de classes.
Apesar do nome parecido, o tratamento delas é completamente diferente. As chaves naturais, os tipos de documento, os processos em que se envolvem... é tudo bem diferente, tu acaba fazendo uma herança desnecessária, e que acaba com umas chamadas de método (usando fluent interface) que ficam parecendo um trem, de tão gigantes.
Eu, particularmente, faço isso. Mas cada um na sua.
É só uma dica
Abraço!
|
"Nunca atribua à falta de caráter o que pode ser facilmente explicado pela estupidez." |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 03/08/2011 07:40:56
|
gomesrod
GUJ Ranger
![[Avatar]](/images/avatar/5de6755473dc988fe6c7db81f26a53ac.jpg)
Membro desde: 11/05/2007 19:46:22
Mensagens: 901
Offline
|
Olá!
Eu tentaria melhorar o seguinte:
- As classes "Pessoa" e "Empresa", se entendi corretamente, não são necessárias. "Pessoa" traz os atributos de uma pessoa física, e "Empresa" traz os atributos de uma empresa (dããã )... correto? Então por que não colocar esses atributos nas próprias classes PessoaFisica e PessoaJuridica?
- Feita a alteração acima, a classe TipoJuridico poderia ser renomeada para Pessoa, que é bem mais significativo (PessoaFisica "é uma" pessoa, PessoaJuridica "é uma" pessoa).
- O Papel não deveria ser um atributo da pessoa. É bem possível que algumas pessoas sejam os 2, vendedores e clientes, e o modelo não suportaria essa situação.
- Aliás, a classe Papel a meu ver não seria necessária pois Vendedor e Cliente são entidades do negócio totalmente distintas. Não parece haver muito sentido em colocá-las em uma mesma hierarquia.
Além disso, sempre é bom ver a necessidade de ter uma hierarquia para PessoaFisica e PessoaJuridica. Dependendo do negócio, não há nenhum comportamento diferenciado entre eles, o que possibilitaria criar um único tipo "Pessoa" com um campo indicando se é Fisica ou Juridica.
Em outros casos (citado acima), a diferença de tratamento é tão grande que os 2 se tornam entidades totalmente separadas.
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 03/08/2011 09:04:26
|
Bruno Reis
JavaChild
Membro desde: 18/10/2010 16:41:46
Mensagens: 101
Offline
|
mas
Pessoa Jurídica não é uma pessoa
Empresa não é uma pessoa
Pessoa Jurídica é um conceito jurídico
PessoaFísica não é uma pessoa, também é um conceito
não se pode herdar coisas de papéis ou transações
um vendedor pode ser um cliente, se ele trabalhar na empresa e comprar dela
todos dão opinião, mas o que existe aqui no GUJ é sempre, Pessoa Jurídica e Pessoa Física extendendo de Pessoa
rodei o fórum e não encontrei uma abstração que não seja assim,
o que existe no fórum, é só discussão, filosofia
acabando em sempre extender PJ e PF de Pessoa
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 03/08/2011 09:13:33
|
Bruno Reis
JavaChild
Membro desde: 18/10/2010 16:41:46
Mensagens: 101
Offline
|
por favor
postem aí então
uma abstração Pessoa Física, Pessoa Jurídica
com papéis Vendedor, Cliente, Fornecedor, Transportador,
mas sem discussão, "você pode isso", "você pode aquilo", e etc.
postem já indicando as FK e PK
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 03/08/2011 09:34:05
|
gomesrod
GUJ Ranger
![[Avatar]](/images/avatar/5de6755473dc988fe6c7db81f26a53ac.jpg)
Membro desde: 11/05/2007 19:46:22
Mensagens: 901
Offline
|
Bruno Reis wrote:
Pessoa Jurídica não é uma pessoa
Empresa não é uma pessoa
Claro que tudo depende do domínio da aplicação em questão, como é tratado no seu negócio especificamente. Mas no sentido comum, pessoa jurídica é uma pessoa sim... Ela pode comprar, vender, contratar, ser contratada, processar judicialmente, ser processada... só não pode ir no banheiro. Porque isso é uma necessidade física, portanto típica das pessoas físicas
Bruno Reis wrote:
postem aí então
uma abstração Pessoa Física, Pessoa Jurídica
mas sem discussão, "você pode isso", "você pode aquilo", e etc.
Mas a discussão não é o mais importante ???
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 03/08/2011 10:22:21
|
Bruno Reis
JavaChild
Membro desde: 18/10/2010 16:41:46
Mensagens: 101
Offline
|
acho isso herança descabida
daqui a pouco, teremos
pessoa tipo especial de computadores
computador tipo especial de sabonetes
na OO
não temos que observar a realidade?
acho importante separar conceitos da realidade
já li muita discussão
preciso ver algo melhor do que eu postei
já mapeado com fk e pk
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 03/08/2011 10:28:28
|
Bruno Reis
JavaChild
Membro desde: 18/10/2010 16:41:46
Mensagens: 101
Offline
|
gomesrod wrote:
Claro que tudo depende do domínio da aplicação em questão, como é tratado no seu negócio especificamente. Mas no sentido comum, pessoa jurídica é uma pessoa sim...
mas, se eu quiser migrar minhas classes para outra regra de negócio, de uma clínica médica, por ex.
se acompanhar a realidade, não fica mais fácil a migração?
imagina eu ter um sistema de uma clínica médica, onde a clínica é uma pessoa jurídica
e uma pessoa é um ser humano
a clínica, terá rins, coração, dentes, ossos
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 03/08/2011 10:35:07
|
Bruno Reis
JavaChild
Membro desde: 18/10/2010 16:41:46
Mensagens: 101
Offline
|
gomesrod wrote:
- O Papel não deveria ser um atributo da pessoa. É bem possível que algumas pessoas sejam os 2, vendedores e clientes, e o modelo não suportaria essa situação.
- Aliás, a classe Papel a meu ver não seria necessária pois Vendedor e Cliente são entidades do negócio totalmente distintas. Não parece haver muito sentido em colocá-las em uma mesma hierarquia.
por favor, posta aí então
um ex. de abstração de Papéis onde uma pessoa pode ser todos os papéis ao mesmo tempo
já com fk e pk
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 03/08/2011 12:14:43
|
Edufa
JavaEvangelist
![[Avatar]](/images/avatar/5747a0021eb349e9c8d3667cf1a5e9ec.jpg)
Membro desde: 18/04/2006 10:20:03
Mensagens: 315
Localização: Curitiba, PR
Offline
|
Pesquise Actor-Role Pattern, ele resolve esta situação de forma bem elegante, na minha opinião, e é o que uso quanto existem vários papeis.
|
Edufa
Curitiba, PR
--
"O estado sou eu". - Luís XIV
"O estado somos nós."- Lênin
"O estado somos eu." - Lula
--
O mundo é deles mas a amazônia é nossa
O petróleo é nosso, mas o gás é deles.
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 03/08/2011 12:44:27
|
gomesrod
GUJ Ranger
![[Avatar]](/images/avatar/5de6755473dc988fe6c7db81f26a53ac.jpg)
Membro desde: 11/05/2007 19:46:22
Mensagens: 901
Offline
|
Bruno Reis wrote:
gomesrod wrote:
posta aí então
já com fk e pk
Puxa, expliquei tão mal assim ? Não dá nem pra tentar imaginar?
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 03/08/2011 12:59:07
|
Bruno Reis
JavaChild
Membro desde: 18/10/2010 16:41:46
Mensagens: 101
Offline
|
gomesrod wrote:
Puxa, expliquei tão mal assim ? Não dá nem pra tentar imaginar?
não quer imaginar pra mim né? rs
o jeito é
Pessoa Jurídica é um tipo especial de Pessoa
vi uma Pessoa Jurídica passando aqui na rua
que coisa linda!
que quadril torneado!
assoviei para ela, ela me disse "não vou te dar meu cnpj"
rsrsrs
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 03/08/2011 13:29:18
|
Bruno Reis
JavaChild
Membro desde: 18/10/2010 16:41:46
Mensagens: 101
Offline
|
Agent Role Pattern
http://www.cs.sjsu.edu/faculty/pearce/modules/patterns/analysis/agents.htm
|
|
|
 |
|
|
|
|