[RESOLVIDO]Como usar?

[code]class Funcionario(){
int codigo;
String nome;
}
/////
class Dependente(){
int codigo;
String nome;
Funcionario funcionario;
}

ou

class Dependente(){
int codigo;
String nome;
int idFuncionario;
}[/code]

Ou é de outra forma?

Abraços!

[quote=WesleyAvila][code]class Funcionario(){
int codigo;
String nome;
}
/////
class Dependente(){
int codigo;
String nome;
Funcionario funcionario;
}

ou

class Dependente(){
int codigo;
String nome;
int idFuncionario;
}[/code]

Ou é de outra forma?

/////
class Dependente(){
int codigo;
String nome;
Funcionario funcionario;
}

Abraços![/quote]

EU acho que pensando na orientação a objectos onde tudo é um objecto, é a primeira forma
/////
class Dependente(){
int codigo;
String nome;
Funcionario funcionario;
}

Tenho hábito de usar a primeira forma. Em muitos casos fui beneficiado por este formato quanto a manutebilidade do código.

[quote=WesleyAvila][code]class Funcionario(){
int codigo;
String nome;
}
/////
class Dependente(){
int codigo;
String nome;
Funcionario funcionario;
}

ou

class Dependente(){
int codigo;
String nome;
int idFuncionario;
}[/code]

Ou é de outra forma?

Abraços![/quote]

Eu acho que eu não entendi sua abstração. Quem tem o Dependente não é Funcionário? Qual a necessidade de colocar um identificador do funcionário no dependente? Tá parecendo relacionamento de banco de dados. POsso estar errado mas eu faria assim:

[code]class Funcionario(){ int codigo; String nome; Dependente dependente; } ///// class Dependente(){ int codigo; String nome; }

[quote=pvrsouza]Eu acho que eu não entendi sua abstração. Quem tem o Dependente não é Funcionário? Qual a necessidade de colocar um identificador do funcionário no dependente? Tá parecendo relacionamento de banco de dados. POsso estar errado mas eu faria assim:

view plaincopy to clipboardprint?

class Funcionario(){ int codigo; String nome; Dependente dependente; } ///// class Dependente(){ int codigo; String nome; } [/quote]

na verdade deve-se usar o Dependente tendo a qual Funcionario ele depende e o Funcionario tem uma lista de Dependentes.

class Funcionario(){ int codigo; String nome; List<Dependente> dependentes; } ///// class Dependente(){ int codigo; String nome; Funcionario funcionario; }

A não ser que sua regra de negocio seja diferente do comum.
[]s

[quote=glaucogoca]
na verdade deve-se usar o Dependente tendo a qual Funcionario ele depende e o Funcionario tem uma lista de Dependentes.[/quote]

Não concordo que o Dependente tem que saber a qual Funcionário ele depende. Vc pode criar uma lógica de buscar o Funcionario ao qual o Dependente pertence, para isto é só retornar o ArrayList de cada funcionario e na lógica tratar isso.
Eu penso assim, se Funcionario “tem um” ArrayList de Dependentes, os Dependentes já saberão que é seu Pai(Funcionario). Existe uma composição ai.

O que acham de ser assim:

[code]public class Funcionario {
private int codigo;
private String nome;
private ArrayList dependentes;

public void setFuncionario(String nome, int codigo){
    this.codigo = codigo;
    this.nome = nome;
    this.dependentes = new ArrayList<Dependente>();
}

public void setDependente(String nomeDependente, int codigoDependente){
    dependentes.add(new Dependente(nomeDependente, codigoDependente));
}

public ArrayList<Dependente> getDependente(){
    return this.dependentes;
}

[/code]

[code]public class Dependente {
private int codigo;
private String nome;

 public Dependente(String nome, int codigo){
     this.codigo = codigo;
     this.nome = nome;
 }

}[/code]

Verdade pvrsouza, esqueci da regra do “tem um” e neste caso, quem tem um dependente é o funcionário e não o contrário.
Mas ai vou poder criar um dependente sem funcionario e meu funcionário vai ser obrigado a ter dependente?

Obrigado pela dica!

Não seria melhor passar um Dependente como argumento? Afinal, Java é orientado a objetos. Além disso ele não é um setter. Ele deveria ser um “add”, por exemplo.

Depende da lógica do seu negócio. Se ficar exatamente como o pvrsouza postou é possível.

Não. Ele terá uma lista de Dependente que pode perfeitamente estar vazia.

[quote=WesleyAvila]Verdade pvrsouza, esqueci da regra do “tem um” e neste caso, quem tem um dependente é o funcionário e não o contrário.
Mas ai vou poder criar um dependente sem funcionario e meu funcionário vai ser obrigado a ter dependente?

Obrigado pela dica![/quote]

Se quiser sim! Nâo tem problema nenhum. Do jeito que eu fiz não daria para ter funcionario sem dependente. Para isto, vc tinha que usar setter’s em subistituição ao que foi postado no contrutor.

O Dependente, pode ser criado na hora que vc quizer. Sem problemas!

Abraços

Verdade. Me empolguei em provar que a relação de tem-um era a melhor opção e esqueci deste detalhe!