[Modelagem] Composicao de classe em classe abstrata

Sim, de fato ja passamos dessa fase e entendi a divisão eficiente de Usuario e Pessoa; note que as interfaces que citei são Roles relacionados às Pessoas.

A minha questão no momento fez referencia ao codigo de analise de Role’s que voce havia citado para ser implementado em Pessoa.

Abraco

[quote=andrielc]Sim, de fato ja passamos dessa fase e entendi a divisão eficiente de Usuario e Pessoa; note que as interfaces que citei são Roles relacionados às Pessoas.

A minha questão no momento fez referencia ao codigo de analise de Role’s que voce havia citado para ser implementado em Pessoa.
[/quote]

Mas depois vimos que ao separar o Usuario da Pessoa, não era mais necessário usar interfaces e que usar interfaces dessa forma representa o modelo conceptual e não fisico.

Vc está focando na estrutrua. Mas pense nos metodos que essas interfaces teriam Seriam alguma coisa diferentes de get/set ? Não. Na prática não. Mesmo que no seu modelo tenha métodos que retorna File , isso não é realista.
interfaces que só têm get/set são um sinal de que não deveríamos usar interfaces.

Ou seja, veja por onde quer que seja que veja sempre o resultado é o mesmo : sem interfaces.

[quote=sergiotaborda][quote=andrielc]Sim, de fato ja passamos dessa fase e entendi a divisão eficiente de Usuario e Pessoa; note que as interfaces que citei são Roles relacionados às Pessoas.

A minha questão no momento fez referencia ao codigo de analise de Role’s que voce havia citado para ser implementado em Pessoa.
[/quote]

Mas depois vimos que ao separar o Usuario da Pessoa, não era mais necessário usar interfaces e que usar interfaces dessa forma representa o modelo conceptual e não fisico.

Vc está focando na estrutrua. Mas pense nos metodos que essas interfaces teriam Seriam alguma coisa diferentes de get/set ? Não. Na prática não. Mesmo que no seu modelo tenha métodos que retorna File , isso não é realista.
interfaces que só têm get/set são um sinal de que não deveríamos usar interfaces.

Ou seja, veja por onde quer que seja que veja sempre o resultado é o mesmo : sem interfaces.
[/quote]

Sim, é verdade, voce tem toda a razão.
O método para retornar File seria um método especifico no SISTEMA Registro ligado à um Role Pessoa ChefeEquipe, não é uma funcão especifica de uma Pessoa com Role Projetista, que por exemplo, tenha o método fazerDesenho() … Voce tem toda razão.

Então, revendo o conceito da minha duvida :!: … O Projetista, ChefeEquipe , … , serão classes estendidas de tipo Role, ou sera apenas um tipoPessoa ?

[code] public class Pessoa{

private TipoPessoa tipo;

}

public enum TipoPessoa {

Projetista, ChefeEquipe;

}
[/code]

Creio que utilizar dessa maneira, apos voce ter aberto a minha cabeca, explicando a utilidade de interface e a visao do Sistema; pensei então simplificar tudo assim.
Deixar para utilizar Role na parte entre o Usuario e Admin.

Essa maneira é aceitavel no seu ponto de vista ?

É tão simples


public class Pessoa {

       TipoPessoa tipo
       Usuario usuario;
}

public enum TipoPessoa {
    PROJETISTA,
    CHEFE_DE_EQUIPE;  
}


public class Usuario {

    Collection<UserRole>  roles;
}


public class UserRole {
     
    String name;

}

Só isso. Acrescente outros atributos e respectivos get/set

Daqui a algum tempo vc vai descobrir que realmente Projetista e ChefeDeEquipe são roles do usuário e não são especializações de pessoa… mas até lá, este é o modelo. Muito simples.