Implementando DAO - Data Access Object em aplicações mobile. [Opinião]

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.

[quote=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.[/quote]
+1

[quote=Rodrigo Sasaki][quote=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.[/quote]
+1[/quote]

+1

[quote=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.[/quote]

+1000

Imaturidade é aplicar um padrão só pra dizer que aplicou.

ja vi DAO em aplicação swing também brother !

Uso DAO no Android e não me incomodo.

Poderia citar um problema prático do uso do DAO no Android?

[quote=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.[/quote]

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.

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.

[quote=Artur Bernardo]Uso DAO no Android e não me incomodo.

Poderia citar um problema prático do uso do DAO no Android?[/quote]

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.

[quote=Ataxexe][quote=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.[/quote]

+1000

Imaturidade é aplicar um padrão só pra dizer que aplicou.[/quote]

Concordo plenamente!

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.

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.[/quote]

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.

E qual sua alternativa ao padrão DAO para apps mobile?

Eu não tenho alternativa mas a minha curiosidade é se teria um padrão arquitectural mais adequado para a abordagem mobile.

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?

Pessoal consultem o link acho uma boa para todos que se sentiram interessado ou curioso com o meu tópico:

Não se assuste se vc achar o DAO ou algo baseado no DAO dentro desse livro kkkkk
Veja - http://www.therealjoshua.com/2011/11/android-architecture-part-7-persistence/

Tem gente usando até ORM que é mais 1 abstração ainda kkkk

[quote=FernandoFranzini]Tem gente usando até ORM que é mais 1 abstração ainda kkkk

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.