`
lovexz365
  • 浏览: 106841 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

采用观察者模式监控多线程发送邮件(成功/失败)的状态

    博客分类:
  • java
 
阅读更多
观察者简述:
  观察者模式(Observer)完美的将观察者和被观察的对象分离开。举个例子,用户界面可以作为一个观察者,业务数据是被观察者,用户界面观察业务数据的变化,发现数据变化后,就显示在界面上。面向对象设计的一个原则是:系统中的每个类将重点放在某一个功能上,而不是其他方面。一个对象只做一件事情,并且将他做好。观察者模式在模块之间划定了清晰的界限,提高了应用程序的可维护性和重用性。


   具体实现方法,可参考  :http://1.todotask.sinaapp.com/?p=8
     


以下代码给出示例:


public class ThreadMail extends Observable implements Runnable {
  private final Log log = LogFactory.getLog(ThreadMail.class);

  public void run(){
    //实现具体逻辑
       .....
  }
}


/****************观察者实现********************/
public class MailObserver implements Observer {
  private IReportService reportService;
  public IReportService getReportService() {
   return reportService;
  }
  public void setReportService(IReportService reportService) {
   this.reportService = reportService;
  }
  @Override
  public void update(Observable o, Object arg) {

  if(arg != null){
    PmsysMessage pmsysMessage  = (PmsysMessage)arg;
     //  re = (IReportService) SpringContextUtil.getBean(“reportService”);
    if(StringUtils.isNotBlank(pmsysMessage.getMessageId())){
     reportService.updateMessage(pmsysMessage);
    }else{
     reportService.insertMessage(pmsysMessage);
    }
   }
  
  }
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics