Spring Frameworkで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" />
私が何をしたいのですがどのような
は、このような種類のStrategyパターンを実装することです注入。このようにするのは「正しい」(良い練習、パフォーマンス、...)ですか?私はDIを使うより良い方法がありますか?
注:コンストラクタやgetter/setterのような基本的なものは書きませんでした。
userIdのみを渡し、データベースによって日付が設定されていることを検討してください。これは、「プログラマーschenanigans」の可能性を制限します。 – DwB