快速业务通道

Java设计模式 - 观察者模式 - 编程入门网

作者 佚名技术 来源 NET编程 浏览 发布时间 2012-06-20
ecklist is : <" + this._checkList + ">.");     }     public String toString() {         return "Assignee";     } }

public class Reviewer extends TaskObserver {     @Override     public void sendEmail() {         print("[Reviewer] The current status is : <" + this._status + ">.");         print("[Reviewer] The current process is : <" + this._process + ">.");         print("[Reviewer] The current checklist is : <" + this._checkList + ">.");     }     public String toString() {         return "Reviewer";     } } public class Reporter extends TaskObserver {     @Override     public void sendEmail() {         print("[Reporter] The current status is : <" + this._status + ">.");         print("[Reporter] The current process is : <" + this._process + ">.");         print("[Reporter] The current checklist is : <" + this._checkList + ">.");     }     public String toString() {         return "Reporter";     } }

Java设计模式 - 观察者模式(4)

时间:2011-01-17 GooooWei

然后我们需要编写一个类用来演示观察者模式,在这个类中会演示注册观察者,取消特定观察者,更改主体对象信息然后观察者自动得到通知并更新信息。

public class TaskManager {     public static void main(String[] args) {         // Create subject         TaskSubject taskSubject = new TaskSubject();         // Create observers         IObserver assignee = new Assignee();         IObserver reviewer = new Reviewer();         IObserver reporter = new Reporter();         // 注册观察者[因为我们使用的是一个列表,所以在通知观察者的时候是按照添加的顺序通知的]         taskSubject.registerObserver(assignee);         taskSubject.registerObserver(reviewer);         taskSubject.registerObserver(reporter);         // 更新主体对象的信息         taskSubject.setStatus("Assigned");         taskSubject.setProcess("No Process Attacted");         taskSubject.setCheckList("CheckList Version 1.0");         // 通知所有观察者         taskSubject.notifyObserver();         // 更新主体对象信息         taskSubject.setStatus("In Progress");         taskSubject.setProcess("Process Attached");         taskSubject.setCheckList("CheckList Version Final Version");         // 取消报告者的注册,并通知剩余所有观察者         taskSubject.removeObserver(reporter);         taskSubject.notifyObserver();     } }

输出的信息如下:

< Assignee > is registed successfully! < Reviewer > is registed successfully! < Reporter > is registed successfully! [Assignee] The current status is : &l

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

分享到: 更多

Copyright ©1999-2011 厦门凌众科技有限公司 厦门优通互联科技开发有限公司 All rights reserved

地址(ADD):厦门软件园二期望海路63号701E(东南融通旁) 邮编(ZIP):361008

电话:0592-5908028 传真:0592-5908039 咨询信箱:web@lingzhong.cn 咨询OICQ:173723134

《中华人民共和国增值电信业务经营许可证》闽B2-20100024  ICP备案:闽ICP备05037997号