Main class passes dbConn obj to all its services, I need to change the dbConn for one of its services. - suggestion for design pattern
- by tech_learner
There is this main class
and there are several services ( which uses db connection to retrieve data )
These services are initialized in the main class
db properties are obtained from the property file and then
dbconnection is opened by calling a method dbOpen() written in the main class
and the resultant connection object is set to the service objects by iterating through the list of services and by calling setConnection method on the service
note: that the services are instantiated in the main class and the main class is not a superclass for services.
I also need to mention that there is this recycle db connection scenario only main class is aware of.
/** connects to DB, optionally recycling existing connection),
* throws RuntimeException if unable to connect */
private void connectDb(boolean recycle) {
try {
if (recycle) {
log.status( log.getSB().append("Recycling DB Connection") );
closeDb();
}
openDb();
for ( int i = 0 ; i < service.length ; i++ )
{
service[i].setConnection(db);
}
}
One of the service needs to use a different database, what is the best design pattern to use?