Fórum Dúvida com POO #375735

08/10/2009

0

Nas últimas semanas me dediquei quase que exclusivamente ao estudo de padrões de projeto e OO em delphi.

Acho que vou adotar o padrão MVC, mas ainda tenho algumas dúvidas quanto a integração entre o formulário e a classe de negócios.
Vou dar um exemplo:

Imaginem a classe TExemplo com os atributos;
qtde;
valor;
valorTotal;

Agora imaginem que tenho um TForm com TDBEdits ligados a um ClientDataSet;

Imaginem que é necessário fazer determinada validação após informar a qtde (regra de negócio da classe TExemplo), e se a validação não der certo deve exibir uma mensagem e colocar o foco no DBEdit da qtde.

E o método salvar da minha classe deve fazer uma verificação se todos os campos obrigatórios foram preenchido, ao encontrar o primeiro deve exibir aviso e colocar o foco no campo que deve ser preenchido.

(A única duvida mesmo é encontra uma maneira pra passar o foco no campo que deve ser preenchido ou que foi preenchido incorretamente)

Como proceder nesse caso? criar um campo para cada DBEdit? (muito trabalhoso).


Diegotiemann

Diegotiemann

Responder

Post mais votado

09/10/2009

|Pq poucos trabalham OOP? Pq tem que pensar antes de começar e da mais
|trabalho.

Mas é necessário dizer tb q, quanto mais OO seu projeto, maiores os ganhos (mesmo q a médio/logo prazo). E, uma vez q se habitue, passa a ser tão rápido quanto RAD


|Mas uma coisa que eu vi foi o seguinte. Se levar a OOP ao extremo,
|Como aplicar MVC ou MVP agente perde o que o Delphi nos traz de
|melhor, que é os DataWare.

Contestável! Adeptos da OOP vão dizer q controles DataWare são exatamente o oposto :wink:


T+


Afarias

Afarias
Responder

Gostei + 1

Mais Posts

08/10/2009

Afarias

|Acho que vou adotar o padrão MVC,

MVC é um padrão q não se encaixa exatamente para aplicações Windows usando uma ferramenta como o Delphi... Dê uma olhada em MVP que é semelhante e mais adequado.

De qualquer forma, está começando pelo topo da montanha... rsss


|mas ainda tenho algumas dúvidas
|quanto a integração entre o formulário e a classe de negócios.

E a integração entre propriedades e os widgets


|Agora imaginem que tenho um TForm com TDBEdits ligados a um
|ClientDataSet;

MVC e controles DataWare???? MVC e DataSets???


|Imaginem que é necessário fazer determinada validação após informar a
|qtde (regra de negócio da classe TExemplo), e se a validação não der
|certo deve exibir uma mensagem e colocar o foco no DBEdit da qtde.
|E o método salvar da minha classe deve fazer uma verificação se todos
|os campos obrigatórios foram preenchido, ao encontrar o primeiro deve
|exibir aviso e colocar o foco no campo que deve ser preenchido.

Não. Salvar cuida apenas de persistir o objeto -- tá, pode cuidar de validar tb. Mas ele não tem qualquer relação com o os EDITS (não DBEdits) ou com o Form.

MVP (esqueça MVC) é: MODELO-VISÃO-APRESENTAÇÃO -- A apresentação possui uma série de Interactors q são responsáveis ai na ´conexão´ da visão com o modelo e é responsabilidade deles formatar a VISÃO (form/widgets) de forma a expressar o estado do modelo.

Consulte ´Model View Presenter´ no Google q deve encontrar artigos interessantes.


|Como proceder nesse caso? criar um campo para cada DBEdit? (muito
|trabalhoso).

Quem disse q OO é fácil?

Alguns toques:

1) DataSets/controles DataWare e padrões como MVC/MVP/MGM são meio q água e óleo. *A princípio* vc não mistura eles.

2) Comece estudando algo mais simples como ´Humble Dialog´ (http://c2.com/cgi/wiki?TheHumbleDialogBox) -- deve encontrar outras referências na Net

3) Existem alguns frameworks que implementam, mesmo q de forma mais simples, o padrão MVP ou o MGM como tiOPF, Infra e Jazz. Dê uma estudada neles para ter uma idéia como os autores implementaram.


T+


Responder

Gostei + 0

09/10/2009

Osocram

Como disse o Afarias
Quem disse q OO é fácil?


Pq vc acha que a maioria trabalha meio que Orietado a Eventos? Pq é mais facil.

Pq poucos trabalham OOP? Pq tem que pensar antes de começar e da mais trabalho.

Mas uma coisa que eu vi foi o seguinte. Se levar a OOP ao extremo, Como aplicar MVC ou MVP agente perde o que o Delphi nos traz de melhor, que é os DataWare. Uma Sugestão aprender os Conceitos de OOP e aplicar os conceitos nos problemas, e assim mantendo o padrão de se usar os DataWare.
E se vc realmente ver que é necessario ir ao extremo, boa sorte, estude muito, vai ser um ótimo aprendizado. Se ver que não é necessário tudo isso, boa sorte, estude muito, vai ser um ótimo aprendizado.


Responder

Gostei + 0

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar