Spring フレームワークを使用して Java 1.5 で開発された Web アプリケーションがあります。アプリケーションには「ダッシュボード」が含まれています。これは、一連の情報が再グループ化され、ユーザーがステータスを変更できる単純なページです。マネージャーは、これらのダッシュボードのうち 3 つのデータベースにログ システムを追加するように求めています。各ダッシュボードには異なる情報がありますが、ログは日付とユーザーのログインによって追跡する必要があります。
私がやりたいのは、次のような戦略パターンを実装することです:
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" />
したがって、このソリューションでは、依存性注入を使用していません。このようにするのは「正しい」(良い習慣、パフォーマンスなど)ですか?DI を使用できるより良い方法はありますか?
注:コンストラクターやゲッター/セッターなどの基本的なものは書きませんでした。