Ho un oggetto singleton. È un DAO che assomiglia un po 'a questo (codice pseudonimo):
class UsersDAO {
public usersDAO init(string sDSN){
variables.sDSN = sDSN;
return this;
}
public array getUsers(){
//do a query to get users, make into array
return aUsers;
}
}
le mie applicazioni creano un'istanza di questo e la usano in tutto il codebase, ma ho anche un altro DAO che lo richiede:
class OrganisationsDAO {
public OrganisationsDAO init(UsersDAO oUsersDAO,string sDSN){
variables.sDSN = sDSN;
variables.oUsersDAO = oUsersDAO;
return this;
}
public array getUsersOrganisations(){
variables.aUsers = variables.oUsersDAO.getUsers();
//getOrganisations for the returned users
return aOrganisations;
}
}
Quindi per rendere l'oggetto OrganisationsDAO ho bisogno di passarlo a UsersDAO.
In un secondo momento nella mia vita delle applicazioni, ho bisogno di aggiornare UsersDAO per includere una funzione public user getUser(int userid)
.
Mi chiedo, c'è un modo per passare attraverso il nuovo UsersDAO agli oggetti che dipendono da esso, senza dover riavviare l'applicazione. In questo caso, l'applicazione è un sito Web anziché un'applicazione desktop.