Fórum Dúvida na criação de classes #332077
25/10/2006
0
Minha duvida esta em CaixaItem. Ela possui uma ligação em FormaPagamento. Devo ter em CaixaItem somente a propriedade FormaPagamentoID ou devo ter um objeto FormaPagamento como propriedade dessa classe?
Rjun
Curtir tópico
+ 0Posts
25/10/2006
Yallebr
Pode ter das 2 formas. O mais coerente seria apenas a ligação. Porque?
Na OO vc tem a ideia que as classes devem ser a mais independente possível. Se vc criar a classe dentro da outro vc tem uma ´Composição´ se vc apenas ligar você tem uma ´Agregação´
A ´composição´ tem a ideia que a classe so tem sentido existir se a outra existir, a ´agregação´ indica que a classe depende da outra mas pode existir sem a outra e até mesmo ter ligações com outras classes.
Ou seja se a classe ´CaixaItem´ não existir não posso sem tirar um relatório de ´FormaPagamento´ ? Se sim faça ´composição´ para ficar melhor encapsulada, se não faça ´agregação´
Se não ficou claro poste novamente.
Yalle Paixão
Gostei + 0
25/10/2006
Rjun
Gostei + 0
26/10/2006
Rjun
- Classe Contato que representa todos os contatos de uma empresa (Cliente, vendedor, fornecedor, transportadora, etc.).
- Classe Venda que representa as movimentação de venda.
- Classe ItemVenda que representa os itens de uma venda.
- Classe Produto que representa os produtos da empresa.
Na classe venda tenho 3 propriedades do tipo Contato, para representar o cliente, o vendedor e a transportadora. Mas as propriedades de contato que me interessam no momento de uma venda são apenas o ID e o Nome. Não é necessário eu preencher as outras propriedades de contato, correto? Isso também se refere aos itens de venda, ja que cada item de venda possui uma propriedade do tipo produto e nesse momento não preciso de todas as propriedades de produto. Carrego somente a que eu necessitar?
Agora imagine que tenho dois grids, um com os clientes da empresa e outra com as vendas, e queira exibir uma janela com os detalhes de cliente. Essa janela pode ser exibida clicando-se na janela de cliente ou de vendas. Repare que na lista do cliente o objeto selecionado tera todas as suas propriedades exibidas e na janela de vendas somente estarão preenchidas as propriedades ID e Nome. Como faço nesse caso. Passo somente o ID para a janela de edição de cliente e ela faz a carga das propriedades?
Agradeço qualquer colaboração.
Gostei + 0
26/10/2006
Marco Salles
Antes de proseguir , gostaria de deixar uma interroçação no ar..
citação de yallebr
Eu gostariade levantar um outra definição
O termo composição , apesar de muito sugestivo , não pode ser entendido como algo que se esta ´compondo´ uma classe .... Para isto se usa o termo Agregação....Na realidade , composição , se refere a constituição dos objetos.. Por exemplo uma classe automovel [b:ba79e6733b]é composto por[/b:ba79e6733b] : motor , caixa de marcha , porta-mala etc...
O termo composição , nen aparece nas operações básicas no processo de abstração..São eles:
Gostei + 0
26/10/2006
Rjun
Gostei + 0
26/10/2006
Fabiano Góes
ta dificil de conseguir que um tópico de OO prospere !!!
Gostei + 0
27/10/2006
Marco Salles
Que ver um exemplo:
http://forum.clubedelphi.net/viewtopic.php?t=81879
Como ira propesparar um tópico desse... Não to aqui fazendo critica ao amigo que fez o tópico. Pois ele tem e deve ter todo o direito de saber , so que fica uma pergunta solta no ar e não da para em um tópico dizer o que tem em quinhentas páginas de alguns livros...
O que eu acho importante é ter os conceitos , estudar os exemplo(Clube delphi edição 75 tem um bom exemplo) e moldar o conhecimento para nossos casos especificos
Aquel livro que indiquei para voce Fabiano Góes é excelente... Voce ja comprou o livro ??? Não esqueça que te devolvo o dinheiro de volta caso não goste...
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)