观察者简述:
观察者模式(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);
}
}
}
分享到:
相关推荐
Java线程池及观察者模式解决多线程意外死亡重启问题,附件含两个要运行代码!
简单易用的多线程发邮件。其中用的callble,里面的发送的邮件是固定的,利用的newFixedThreadPool。你可以自己调整成其他的线程池,原理一样。
使用C#开发的工资邮件发送程序,使用多线程快速发送。
智能生成对账单excel,并压缩文件,然后多线程发送邮件,含測試文件(知识点:多线程,操作Excel,读取Ini配置,Smtp发邮件及配置,调用7z.dll压压缩类)
最近项目中所用到了多线程/网络编程/设计模式等技术,打个压缩包便于在公司下载翻阅.
多线程编程-监控线程
基于Python实现多进程的发送邮件.zip
以生产者/消费者问题为例来阐述Linux线程的控制和通信。一组生产者线程与一组消费者线程通过缓冲区发生联系。生产者线程将生产的产品送入缓冲区,消费者线程则从中取出产品。缓冲区有N 个,是一个环形的缓冲池。 ...
易语言多线程监控进程源码,多线程监控进程,获取监视进程状态,进入监视,监视进程进入,监视进程退出,监视进程,关闭线程,发邮件A
Java多线程设计模式上传文件Java多线程设计模式上传文件Java多线程设计模式上传文件Java多线程设计模式上传文件Java多线程设计模式上传文件Java多线程设计模式上传文件Java多线程设计模式上传文件Java多线程设计模式...
NULL 博文链接:https://fengyunxiao.iteye.com/blog/973611
使用多线程实现了生产者和消费者模式
//PsRemoveCreateThreadNotifyRoutine //取消线程拦截 取消线程监控 //PsRemoveLoadImageNotifyRoutine //取消模块拦截 取消模块监控 //PsRestoreImpersonation //PsResumeProcess //PsReturnPoolQuota //...
多线程控制多个定时任务执行,通过校验数据库数据异常来发送邮件。
多线程下载,包括暂停、继续下载、取消; 使用观察者模式进行针对更新,防止ListView下载进度乱串
通过多线程的方式实现了UDP收发数据 可以快速学习UDP通讯原理应进行实际应用
c# Socket 多线程 分包 发送/接受数据 客户端 分包发送数据,服务端接受并相应, 第一次接触Socket也不知道理解的对不对 有问题的还请见谅
该代码主要是观察者模式的使用学习,包含了任务队列,结合任务队列实现观察者模式,该模式在实际项目中会经常用到,可以参考学习。
java 多线程 数据流 tcp thread i/o
C# 自动发邮箱 多线程 这次采用的是MS 的API ,发送效率更快,而且用的是多线程的,不影响页面的响应; 操作:1.EmailHandler 更改里面的发送参数和接收参数 2.运行 SendMail.aspx 页面 呵呵,现在看一下接受邮箱了, ...