DAO e Factory

Pessoal , hoje com os frameworks de IOC como o Spring, o codigo abaixo esta obsoleto, certo?
Esse código é de 2004 e é um arquivo batch.

Factory, visando amanha a troca facilmente de banco de dados.

public interface DAOEmpregadoFactory { DAOEmpregado create(); }
Implementacao do Factory. retornando uma instancia de uma class DAO.

public class DAOEmpregadoFactoryPostgreSQL implements DAOEmpregadoFactory { public DAOEmpregado create() { return new DAOEmpregadoPostgreSQL(); }
Interface do DAO.

public interface DAOEmpregado { Empregado buscaPorId(int ident) throws SQLException; }
Class que é retornada pelo DAOEmpregadoFactoryPostgreSQL.

public class DAOEmpregadoPostgreSQL implements DAOEmpregado {
         Empregado buscaPorId(int ident)	throws SQLException	{
         // implementacao omitida
      }
}

Class com o metodo main:

DAOEmpregadoFactory fabrica = new DAOEmpregadoFactoryPostgreSQL();
DAOEmpregado dao = fabrica.create();

Neste trecho acima, objeto dao é instaciado pelo retorno do metodo create do objeto fabrica. Veja que ele somente retorna uma instancia do DAOEmpregadoPostgreSQL

hoje em dia existe maneiras mais bonitas de se fazer.
Mas em alguns casos ainda pode ser útil, como você mesmo citou em sistemas antigos.

Agora se é pra começar a desenvolver um sistema hoje eu não faria assim… opinião minha…

Eu também nao faria, esse sistema é antigo.
Mas ja que preciso mudar como ficaria um DAO hoje usando Spring (estou comecando a estuda-lo…)?

Vi que tem muito suporte, mas em alguns casos que vi, sugiram alguns coisas novas, por exemplo class services, não entendi a necessidade dessas class de servicos

Apenas deixará de existir este monte de factory. O spring que irá gerenciar o clico de vida do objeto.

Existirá apenas a interface e as implementações do DAO.
O resto é IoC.

[quote=afsrj]Eu também nao faria, esse sistema é antigo.
Mas ja que preciso mudar como ficaria um DAO hoje usando Spring (estou comecando a estuda-lo…)?

Vi que tem muito suporte, mas em alguns casos que vi, sugiram alguns coisas novas, por exemplo class services, não entendi a necessidade dessas class de servicos
[/quote]

Se não me engando pra fazer um hello do spring dao support é só você ter um dao que herda da classe jdbcdaosuppor e em cada método voce usa o jdbctemplate pra fazer as querys.

Mas tem muita coisa que dá pra fazer com ele, resultset extractors, etc.

[]´s