SUGESTÕES PARA CRIA?ÃO DE CLASSES COM ATRIBUTOS
Boa noite turma,
Estou criando um sisteminha de controle de estoque onde também terei de armazenar informações referentes aos clientes, fornecedores e empregados, ambos são pessoas, mas pessoas fÃsicas e jurÃdias. Os dados cadastrais são bem semelhantes aos três, como eu quero criar o sistema em camadas eu preciso criar uma classe de domÃnio contendo apenas os atributos. Achei estranho repetir os mesmos atributos três vezes em classes diferentes e mudando apenas um ou outro atributo. Se precisar eu posso postar a minha classe aqui.
O que vocês me sugerem?
Obrigada!
Estou criando um sisteminha de controle de estoque onde também terei de armazenar informações referentes aos clientes, fornecedores e empregados, ambos são pessoas, mas pessoas fÃsicas e jurÃdias. Os dados cadastrais são bem semelhantes aos três, como eu quero criar o sistema em camadas eu preciso criar uma classe de domÃnio contendo apenas os atributos. Achei estranho repetir os mesmos atributos três vezes em classes diferentes e mudando apenas um ou outro atributo. Se precisar eu posso postar a minha classe aqui.
O que vocês me sugerem?
Obrigada!
KELLY,
Você pode criar um modelo genérico que tenha todas as caracterÃsticas em comum das três pessoas. Depois cria três classes especÃficas com os dados que só aquelas pessoas tem. Neste ponto você pede para fazer uma [Ô]herança[Ô] para acabar de compor cada classe mais especÃfica.
A ideia é fazer que cada classe especÃfica herde todas as caracterÃsticas do modelo genérico.
Nota: Este modelo genérico não precisa [Ô]utilizado na prática[Ô] (entre aspas) nunca, pois somente servirá de modelo para as classes.
A tabela no banco de dados pode ser a mesma e se você quiser ou achar interessante pode separar os dados especÃficos em outras três (uma tabela para cada pessoa) montando um relacionamento de 1 para 1 ou se não for o caso montar uma tabela única. Fica ao seu critério.
Coloquei estes links para você ler (de preferência tudo), mas separei o ponto especÃfico onde aparece o que você quer fazer.
==============================================================
http://pt.slideshare.net/CursoSENAC/anlise-orientada-a-objetos-objetos-e-classes
==============================================================
...
46. Considere um programa para gerenciar clientes, empregados e fornecedores de uma empresa. Para cada tipo de objetos criamos uma classe com atributos e métodos. Exemplo Classes Pessoa e Empregado : Diagrama de Classes – Generalização ou Herança Pessoa nome sexo devolveSexo() devolveNome() imprime() Empregado nome sexo salario devolveSexo() devolveNome() devolveSalario() atualizaSalario(sal) imprime()
47. 1.Comparando as classes, observamos que:
1.Ambas possuem os atributos nome e sexo .
1.Ambas oferecem os mesmos métodos para buscar o nome e o sexo ( devolveNome() , devolveSexo() ).
1.A classe Empregado “adiciona†um novo atributo para armazenar o salário, e os métodos especÃficos de um empregado.
1.Portanto podemos dizer que um empregado é uma pessoa com algumas “coisas†a mais.
1.Seria interessante se não precisássemos repetir na classe Empregado o código comum à classe Pessoa .
1.Isto é possÃvel se definirmos que a classe Empregado herda as caracterÃsticas da classe Pessoa .
Diagrama de Classes – Generalização ou Herança
48. Representação Gráfica Diagrama de Classes – Generalização ou Herança Empregado Pessoa
...
==============================================================
http://pt.slideshare.net/Ridlo/uml-1858376
==============================================================
Diagrama de Classes
http://www.inf.ufpr.br/silvia/ESNovo/UML/pdf/ModeloConceitualAl.pdf
Observe o slide que tem:
[Ô]Métodos ou Serviços: Documento -> Carta, Fax ou Telefonema[Ô]
Veja que o [Ô]Fax[Ô] nem tem propriedades próprias!
==============================================================
Macoratti sempre é legal!
http://www.macoratti.net/net_uml1.htm
==============================================================
Se você quiser, posso montar para você um exemplo bacana para seu caso especÃfico.
[][ô]s,
Tunusat.
Você pode criar um modelo genérico que tenha todas as caracterÃsticas em comum das três pessoas. Depois cria três classes especÃficas com os dados que só aquelas pessoas tem. Neste ponto você pede para fazer uma [Ô]herança[Ô] para acabar de compor cada classe mais especÃfica.
A ideia é fazer que cada classe especÃfica herde todas as caracterÃsticas do modelo genérico.
Nota: Este modelo genérico não precisa [Ô]utilizado na prática[Ô] (entre aspas) nunca, pois somente servirá de modelo para as classes.
A tabela no banco de dados pode ser a mesma e se você quiser ou achar interessante pode separar os dados especÃficos em outras três (uma tabela para cada pessoa) montando um relacionamento de 1 para 1 ou se não for o caso montar uma tabela única. Fica ao seu critério.
Coloquei estes links para você ler (de preferência tudo), mas separei o ponto especÃfico onde aparece o que você quer fazer.
==============================================================
http://pt.slideshare.net/CursoSENAC/anlise-orientada-a-objetos-objetos-e-classes
==============================================================
...
46. Considere um programa para gerenciar clientes, empregados e fornecedores de uma empresa. Para cada tipo de objetos criamos uma classe com atributos e métodos. Exemplo Classes Pessoa e Empregado : Diagrama de Classes – Generalização ou Herança Pessoa nome sexo devolveSexo() devolveNome() imprime() Empregado nome sexo salario devolveSexo() devolveNome() devolveSalario() atualizaSalario(sal) imprime()
47. 1.Comparando as classes, observamos que:
1.Ambas possuem os atributos nome e sexo .
1.Ambas oferecem os mesmos métodos para buscar o nome e o sexo ( devolveNome() , devolveSexo() ).
1.A classe Empregado “adiciona†um novo atributo para armazenar o salário, e os métodos especÃficos de um empregado.
1.Portanto podemos dizer que um empregado é uma pessoa com algumas “coisas†a mais.
1.Seria interessante se não precisássemos repetir na classe Empregado o código comum à classe Pessoa .
1.Isto é possÃvel se definirmos que a classe Empregado herda as caracterÃsticas da classe Pessoa .
Diagrama de Classes – Generalização ou Herança
48. Representação Gráfica Diagrama de Classes – Generalização ou Herança Empregado Pessoa
...
==============================================================
http://pt.slideshare.net/Ridlo/uml-1858376
==============================================================
Diagrama de Classes
http://www.inf.ufpr.br/silvia/ESNovo/UML/pdf/ModeloConceitualAl.pdf
Observe o slide que tem:
[Ô]Métodos ou Serviços: Documento -> Carta, Fax ou Telefonema[Ô]
Veja que o [Ô]Fax[Ô] nem tem propriedades próprias!
==============================================================
Macoratti sempre é legal!
http://www.macoratti.net/net_uml1.htm
==============================================================
Se você quiser, posso montar para você um exemplo bacana para seu caso especÃfico.
[][ô]s,
Tunusat.
Boa noite TUNUSAT, eu posso postar a minha classe para você me orientar como fazer a herança nesse meu projeto que estou trabalhando em camadas? Se fosse de outra forma eu saberia como fazer a herança, mas como estou utilizando camadas não sei como fazer sem utilizar herança múltiplas, coisa que em C# não é possÃvel.
Vou te dar o caminho das pedras, veja:
class Pessoa
{
public int ID { get; set; }
public string Nome { get; set; }
}
class PessoaFisica
{
public string CPF { get; set; }
}
class PessoaJuridica
{
public string CNPJ { get; set; }
}
class Cliente : PessoaFisica
{
// coisas relacionadas ao cliente
}
class Funcionario : PessoaFisica
{
public decimal Salario { get; set; }
}
class Vendedor: Funcionario
{
// coisas relacionadas ao vendedor
}
class Fornecedor: PessoaJuridica
{
// coisas relacionadas ao fornecedor
}
class Pessoa
{
public int ID { get; set; }
public string Nome { get; set; }
}
class PessoaFisica
{
public string CPF { get; set; }
}
class PessoaJuridica
{
public string CNPJ { get; set; }
}
class Cliente : PessoaFisica
{
// coisas relacionadas ao cliente
}
class Funcionario : PessoaFisica
{
public decimal Salario { get; set; }
}
class Vendedor: Funcionario
{
// coisas relacionadas ao vendedor
}
class Fornecedor: PessoaJuridica
{
// coisas relacionadas ao fornecedor
}
Nossa!! Você não me deu o caminho das pedras, mas asfaltou toda a pista. rs!
Gostei do exemplo, eu coloco a classe pessoa primeiro e vou herdando as demais classes abaixo. Gostei do exmplo Jaba. Irei implementar dessa forma.
Muito obrigada!!
Gostei do exemplo, eu coloco a classe pessoa primeiro e vou herdando as demais classes abaixo. Gostei do exmplo Jaba. Irei implementar dessa forma.
Muito obrigada!!
Tópico encerrado , respostas não são mais permitidas