Dejado allí unas pocas clases separadas DAO OrderDAO
, ProductDAO
y CustomerDAO
que almacenan/recuperar los datos en la base de datos y compartir una única instancia DataSource
(la fábrica de conexiones de base de datos).Pregunta sobre el patrón de la torta
Para crear una instancia de DataSource
y enchufarla en DAOs
, solemos utilizar Spring DI. Ahora me gustaría hacer eso en Scala sin ningún marco DI.
He leído sobre el cake pattern, y parece que yo debería hacer lo siguiente:
trait DatabaseContext { val dataSource:Datasource }
trait OrderDAO {this:DatabaseContext =>
... // use dataSource of DatabaseContext
}
trait ProductDAO {this:DatabaseContext =>
... // use dataSource of DatabaseContext
}
object DAOImpl extends OrderDAO with ProductDAO with DatabaseContext {
val dataSource = ... // init the data source
}
¿Debo entender el patrón de la torta correctamente?
¿Puedo implementar estos DAOs
de manera diferente con el patrón de tortas?
¿Qué proporciona que marcos DI como Spring no lo son?
¿Cómo puedo crear separadas OrderDAOImpl
y ProductDAOImpl
objetos que comparten el mismo DataSource
ejemplo, en lugar de uno grande DAOImpl
?
Leí brevemente sobre el patrón de pastel y no vi lo que la emoción era sobre cualquiera de los dos. Parece mucho más complicado que los contenedores DI existentes. – Kevin
Si te gusta o no, no es realmente relevante para la pregunta. Y "me estoy perdiendo algo" es una pregunta muy débil. Tal vez sería mejor preguntar "¿qué proporciona esto que X no ofrece?", Lo cual es una pregunta clara. –
@Daniel. Gracias. He reformulado la pregunta. – Michael