Implementando DAO - Data Access Object em aplicações mobile. [Opinião]
23 respostas
A
anderson.bonavides
Sou iniciante em desenvolvimento Android mas tennho certeza de que DAO - Data Access Object não tem nada haver com aplicações mobile e sim com Desenvolvimento Web, pois este recurso é utilizado pelos Applications Servers. A aplicação entrega para o servidor web a interface e o servidor web se encarrega de devolver qual a implementação correta para aquela interface. Desenvolvendo para as interface podemos ter aplicações distribuídas sem nos preocupar onde estão os servidores que estão estas classes. Por este motivo acho uma falta de maturidade no desenvolvimento mobile incluir DAOs em aplicações mobile.
Fica Dida!
Obs: Peço para que aqueles que tem conhecimentos mais do que eu que me corrijam se eu estiver errado.
Eu discordo.
DAO é utilizado para isolar o mecanismo de persistência de uma solução de forma que possa ser intercambiando com flexibilidade. O padrão de projeto pode ser aplicado em qualquer contexto Java independentemente de plataforma, desde que se atenha a intenção do padrão.
R
Rodrigo_Sasaki
FernandoFranzini:
Eu discordo.
DAO é utilizado para isolar o mecanismo de persistência de uma solução de forma que possa ser intercambiando com flexibilidade. O padrão de projeto pode ser aplicado em qualquer contexto Java independentemente de plataforma, desde que se atenha a intenção do padrão.
+1
F
fredericomaia10
Rodrigo Sasaki:
FernandoFranzini:
Eu discordo.
DAO é utilizado para isolar o mecanismo de persistência de uma solução de forma que possa ser intercambiando com flexibilidade. O padrão de projeto pode ser aplicado em qualquer contexto Java independentemente de plataforma, desde que se atenha a intenção do padrão.
+1
+1
A
Ataxexe
FernandoFranzini:
Eu discordo.
DAO é utilizado para isolar o mecanismo de persistência de uma solução de forma que possa ser intercambiando com flexibilidade. O padrão de projeto pode ser aplicado em qualquer contexto Java independentemente de plataforma, desde que se atenha a intenção do padrão.
+1000
Imaturidade é aplicar um padrão só pra dizer que aplicou.
S
Slow17
ja vi DAO em aplicação swing também brother !
A
Artur_Bernardo
Uso DAO no Android e não me incomodo.
Poderia citar um problema prático do uso do DAO no Android?
A
anderson.bonavides
FernandoFranzini:
Eu discordo.
DAO é utilizado para isolar o mecanismo de persistência de uma solução de forma que possa ser intercambiando com flexibilidade. O padrão de projeto pode ser aplicado em qualquer contexto Java independentemente de plataforma, desde que se atenha a intenção do padrão.
Se pensarmos no sentido de programarmos sempre para a interface eu acho totalmente coerente, mas se pensarmos que o padrão se enquadra perfeitamente no conceito de aplicações distribuídas não entendo porque se utilizar o padrão em aplicações mobile. Vou me aprofundar sobre o assunto pois gostaria de ler a opinião de mais pessoas.
R
Rodrigo_Sasaki
O padrão independe de qualquer tipo de aplicação. O objetivo dele é facilitar a vida do desenvolvedor, abstraindo toda a camada de manipulação de banco de dados. Deixando a coisa toda mais organizada, e isso é válido para aplicações desktop, web, mobile ou qualquer outra que tenha uma camada de persistência.
Você pode argumentar que prefere usar outros patterns, como os que aparecem quando falamos de DDD, mas remover a abstração, eu não acho certo em nenhuma situação.
A
anderson.bonavides
Artur Bernardo:
Uso DAO no Android e não me incomodo.
Poderia citar um problema prático do uso do DAO no Android?
Na verdade não vejo problema nenhum, mas gosto de pensar sem pre em boas práticas de programação. Ao longo do meu aprendizado pensei por várias vezes se o padrão utilizado para a persistência de dados é o DAO ou se existe alguma alternativa que se encaixe melhor com a abordagem.
J
joaoabi
Ataxexe:
FernandoFranzini:
Eu discordo.
DAO é utilizado para isolar o mecanismo de persistência de uma solução de forma que possa ser intercambiando com flexibilidade. O padrão de projeto pode ser aplicado em qualquer contexto Java independentemente de plataforma, desde que se atenha a intenção do padrão.
+1000
Imaturidade é aplicar um padrão só pra dizer que aplicou.
Concordo plenamente!
A
Ataxexe
Não entendi sua colocação.
DAO -> persistência… aplicações de celulares persistem informações, logo, há espaço para o uso do padrão.
A
anderson.bonavides
Não entendi sua colocação.
DAO -> persistência… aplicações de celulares persistem informações, logo, há espaço para o uso do padrão.
Concordo com você, mas deixo uma interrogação, o padrão DAO apesar de ser um perfeito padrão é o único existente para desenvolvimento de persistência de dados, caso não seja o único existente, existe algum padrão que encaixe melhor na abordagem mobile?
Não quero colocar a minha opinião como a correta, mas quero apenas apenas levantar uma discussão sadia sobre o assunto. Aliás, não apenas +1 ou +10… Opiniões que agregue valor ao fórum.
J
JackOld
E qual sua alternativa ao padrão DAO para apps mobile?
A
anderson.bonavides
Eu não tenho alternativa mas a minha curiosidade é se teria um padrão arquitectural mais adequado para a abordagem mobile.
F
FernandoFranzini
Como ja falado antes…java é java e pattern é pattern…não importa o contexto…se o contexto importasse…não seria um pattern reutilizável…não concorda?
Cara eu ja rodei DAO em JME meados de 2005 e foi a coisa mais linda…kkkkk
Qual é seu receio?
A
anderson.bonavides
Pessoal consultem o link acho uma boa para todos que se sentiram interessado ou curioso com o meu tópico:
Cara eu não duvidei do padrão nem muito menos diminui, apenas levantei a hipótese da existência de um padrão de protejo mais ideal para aplicações android. Acho que sua respostas foram bastante valiosas, mas você é sempre ironico em suas colocações no forum do GUJ? Sempre tratam as pessoas com ironia quando respondem elas? O mundo do desenvolvimento é muito extenso, até mesmo no Java pois podemos programar para vários tipos de dispositivos, desktop, web, mobile… Vamos lembrar como surgiu a linguagem e o que era ela antes de se tornar uma linguagem de programação fortemente usada. Não vamos atrofiar nossas cabeças achando que tudo que é arquitectura web serve para mobile, mesmo que o padrão DAO migre com outro nome e uma outra forma de tratamento, pode ter certeza que já foi uma adaptação e melhoria.
Humildade é uma virtude valiosa deixada por Deus em seus livros, procure ler, aprender e deixar Deus ser primeiro em sua vida.
Abraços.
F
FernandoFranzini
Em nenhum momento fui irônico nas respostas…isso foi SUA interpretação!
Todas as pessoas aqui já me conhecem, conhece meu blog e sabem do meu profissionalismo…
Eu só achei divertido…vc vir aqui perguntar uma coisa, muitas pessoas de lugares diferentes responder na mesma direção e vc ainda ficar relutante…
Na verdade NÓS é q estamos tentado abrir A SUA cabeça dizendo que um padrão de projeto é algo aplicável em qualquer contexto independente de plataforma…desde esteja dentro da sua motivação.
O pior de tudo…é perder meu tempo te ajudando eu ainda tenho que ler toda essa baboseira…
T+
A
anderson.bonavides
FernandoFranzini:
1. Em nenhum momento fui irônico nas respostas…isso foi SUA interpretação!
2. Todas as pessoas aqui já me conhecem, conhece meu blog e sabem do meu profissionalismo…
3. Eu só achei divertido…vc vir aqui perguntar uma coisa, muitas pessoas de lugares diferentes responder na mesma direção e vc ainda ficar relutante…
4. Na verdade NÓS é q estamos tentado abrir A SUA cabeça dizendo que um padrão de projeto é algo aplicável em qualquer contexto independente de plataforma…desde esteja dentro da sua motivação.
O pior de tudo…é perder meu tempo te ajudando eu ainda tenho que ler toda essa baboseira…
T+
Como já disse, fica com Deus.
A
A_H_Gusukuma
Voltando à questão original, o padrão é totalmente compatível e recomendado. Inclusive o Android tem um componente específico para compartilhamento de dados: Content Provider.
Que com o uso dos Loaders passa a ser cada vez mais interessante utilizar mesmo para uso exclusivo de uma app.
A
anderson.bonavides
A H Gusukuma:
Voltando à questão original, o padrão é totalmente compatível e recomendado. Inclusive o Android tem um componente específico para compartilhamento de dados: Content Provider.
Que com o uso dos Loaders passa a ser cada vez mais interessante utilizar mesmo para uso exclusivo de uma app.