How to efficiently implement a strategy pattern with spring ?

Posted by Anth0 on Stack Overflow See other posts from Stack Overflow or by Anth0
Published on 2010-12-29T10:44:09Z Indexed on 2010/12/29 10:53 UTC
Read the original article Hit count: 214

Filed under:
|
|
|

I have a web application developped in J2EE 1.5 with Spring framework. Application contains "dashboards" which are simple pages where a bunch of information are regrouped and where user can modify some status. Managers want me to add a logging system in database for three of theses dashboards. Each dashboard has different information but the log should be traced by date and user's login.

What I'd like to do is to implement the Strategy pattern kind of like this :

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();
   } 
}

Is it "correct" (good practice, performance, ...) to do it this way ? Is there a better way ?

Note :I did not write basic stuff like constructors and getter/setter.

© Stack Overflow or respective owner

Related posts about java

Related posts about spring