OPnião sobre implementação de classes pessoas

3 respostas
betolucrecia

Olá a todos

gostaria de uma opnião sobre essa implememtação que fiz ai em baixo

sou iniciante em java e estou estudando classes genericas, quanto a questão dos generics não tenho nem uma duvida.

a questão é saber se essa implementação faz sentido.. sei que isso vai depender de uma melhor analise do problema envolvido, más num contexto mais generalizado..??

no caso ai se eu quiser criar outro tipo de pessoa basta eu implementar de TipoDePessoa.. com suas características especificas de cada tipo de pessoas

o que vocês acham disso se torna algo escalonavel??

é aquela velha historia das classes pessoas..

utilizei classe genéricas.. de uma olhada e opinem por favor .. qualquer opinião será bem vinda..

public class Pessoa<T extends TipoDePessoa> {

	private T pessoa;
	
	public Pessoa(T tipoDePessoa){
		this.pessoa = tipoDePessoa;
	}
	
	public T getDadosPessoa(){
		return pessoa;
	}
	
}
public class PessoaFisica implements TipoDePessoa{

	
	public String getCPF(){
		return "CPF da Pessoa Fisica";
	}
	
}
public class PessoaJurica implements TipoDePessoa {

	public String getCNPJ(){
		return " CNPJ da Pessoa Jurica";
	}
	
}
public interface TipoDePessoa {

	
	
}

Teste

public class PessoaTest {
	
	public static void main(String[] args) {

		Pessoa<PessoaFisica> PessoaFisica = new Pessoa<PessoaFisica>(new PessoaFisica());
		Pessoa<PessoaJurica> PessoaJuridica = new Pessoa<PessoaJurica>(new PessoaJurica());
		
		String CPF = PessoaFisica.getDadosPessoa().getCPF();
		String CNPJ = PessoaJuridica.getDadosPessoa().getCNPJ();
		
		System.out.println("Pessoa Fisica: " + CPF + "\nPessoa Juridica" + CNPJ);
		
	}

}

3 Respostas

D

Olá Jovem. Tudo bem?

Bem… vou dar minha opinião. Não quer dizer que é a verdade absoluta.

Achei muito interessante este esquema que você montou. Ficou bem legal. Mas não acredito que esta abordagem esteja correta, por causa do conceito que envolve pessoa, pessoa física e pessoa jurídica.

O conceito entre elas é de especialização. Pessoa Física é uma especialização de Pessoa. Neste contexto, acredito que o mais coerente é implementar as classes PessoaFisica e PessoaJuridica, ambas herdando da classe Pessoa.

Espero ter ajudado. Até.

betolucrecia

Olá amigo obrigado pela sua opinião…

então… é que aqui mesmo na GUJ já vi muitas pessoas dizerem que o uso de herança é o seguinte.

“Planeje sua aplicação para o uso de herança. ou não use” …algo mais ou menos assim…
e que é melhor acoplamento do que herança…

mais uma vez. obrigado pela opinião… mais alguém?

D

Mas isso que você leu é bem verdade sim. Trabalhar com herança não é necessariamente fácil. Muito pelo contrário. É um conceito muito útil mas que nem sempre é fácil de se implementar, principalmente quando se utiliza em entidades que serão persistidas em um banco de dados relacional.

Portanto um bom planejamento do seu modelo de entidades é fundamental.

Criado 8 de janeiro de 2009
Ultima resposta 8 de jan. de 2009
Respostas 3
Participantes 2