Como implementar eficientemente um padrão de estratégia com a primavera?
Eu tenho uma aplicação web desenvolvida em Java 1.5 com framework Spring. O aplicativo contém "painéis", que são páginas simples, onde um monte de informações são reagrupadas e o usuário pode modificar algum status. Os gerentes querem que eu adicione um sistema de registro no banco de dados para três desses painéis. Cada painel possui informações diferentes, mas o log deve ser rastreado por data e logon do usuário.
O que eu gostaria de fazer é implementar o padrão de estratégia como este:
interface DashboardLog {
void createLog(String login, Date now);
}
// Implementation for one dashboard
class PrintDashboardLog implements DashboardLog {
Integer docId;
String status;
void createLog(String login, Date now){
// Some code
}
}
class DashboardsManager {
DashboardLog logger;
String login;
Date now;
void createLog(){
logger.log(login,now);
}
}
class UpdateDocAction{
DashboardsManager dbManager;
void updateSomeField(){
// Some action
// Now it's time to log
dbManagers.setLogger = new PrintDashboardLog(docId, status);
dbManagers.createLog();
}
}
Appcontext.xml:
<bean id="dashboardManagers" class="...DashboardManagers" />
Nesta solução, portanto, não estou usando injeção de dependência. É "correto" (boas práticas, desempenho, ...) fazê-lo desta maneira? Existe uma maneira melhor de usar o DI?
Nota: Eu não escrevi coisas básicas como construtores e getter / setter.