Buenas,
1- La factoria simple es muy sencilla de implementar. Deberia ser una factoria generica para cualquier entidad de tu aplicacion. Algo como:
Código Java:
Ver originalclass DAOFactory {
+getPersonDAO
+getProductoDAO
....
}
Los beneficios de seguir esta estructura pueden no resultar aparentes, pero son reales. Utilizando la factoria te abstraes de la implementacion utilizada. Por ejemplo, el dia de manana podrias querer migrar de JDBC a JPA/Hibernate. Para ello bastaria con crear la implementacion de Hibernate y en cuanto este lista cambiar el factory para que devuelva la implementacion JPA en lugar de JDBC.
La factoria simple es el tipo mas sencilla, luego esta el patron abstract factory, que permite introducir mas iteraciones en la implementacion. Hoy en dia es muy comun utilizar, en lugar de un factory, un mecanismo de inyeccion de dependencias.
https://es.wikipedia.org/wiki/Abstract_Factory https://es.wikipedia.org/wiki/Inyecc...e_dependencias
En todos los casos como veras el objetivo es siempre el mismo. Abtraerse de las implementaciones utilizadas para hacer mas sencillo el mantenimiento.
2-Eso depende. Eso no se define en funcion de la funcionalidad de tu aplicion. Existe una entidad Sales en el modelo de tu aplicacion? Cuando haces esa busqueda... que devuelves, una lista de Person o de Sales? Si lo que buscas es en la tabla de personas y devuelves personas entonces deberias incluirlo en el DAO de personas (ej:
findAllPersonBySales).
Un saludo