设计模式--观察者模式
来源:互联网 发布:sql server decimal 编辑:程序博客网 时间:2024/06/04 00:12
例子:以订阅博客发布为例子
package ObverserBlog;/** * 封装的文章对象 * <p>Title: Article</p> * <p>Description: </p> * <p>Company:</p> * @author夏 杰 * @date2016年1月4日下午3:36:07 * @version 1.0 */public class Article {private String articleTitle;private String articleContent;public String getArticleTitle() {return articleTitle;}public void setArticleTitle(String articleTitle) {this.articleTitle = articleTitle;}public String getArticleContent() {return articleContent;}public void setArticleContent(String articleContent) {this.articleContent = articleContent;}}
package ObverserBlog;import java.util.Observable;/** * 被监听的用户对象的行为 * <p>Title: BlogUser</p> * <p>Description: </p> * <p>Company:</p> * @author夏 杰 * @date2016年1月4日下午3:37:01 * @version 1.0 */public class BlogUser extends Observable{public void publishBlog(String articleTitle,String articleContent){Article art = new Article();art.setArticleTitle(articleTitle);art.setArticleContent(articleContent);System.out.println("博主:发表新文章,文章标题:" + articleTitle + ",文章内容:" + articleContent);this.setChanged();//传递对象给观察者this.notifyObservers(art);} }
package ObverserBlog;import java.util.Observable;import java.util.Observer;/** * 观察者1 * 自定义的观察者类 * <p>Title: MyObserve</p> * <p>Description: </p> * <p>Company:</p> * @author夏 杰 * @date2016年1月4日下午3:57:32 * @version 1.0 */public class MyObserver1 implements Observer {/** * 当被观察发生变化时的响应 * <p>Title: update</p> * <p>Description: </p> * @param o * @param arg * @see java.util.Observer#update(java.util.Observable, java.lang.Object) */@Overridepublic void update(Observable o, Object object) { //获得被观察者传递过来的对象参数 Article article =(Article)object; System.out.println("观察者1收到的消息:........");System.out.println("博主发表了新的文章,快去看吧!");System.out.println("博客标题为:" + article.getArticleTitle());System.out.println("博客内容为:" + article.getArticleContent());}}
package ObverserBlog;import java.util.Observable;import java.util.Observer;/** * 观察者2 * 自定义的观察者类 * <p>Title: MyObserve</p> * <p>Description: </p> * <p>Company:</p> * @author夏 杰 * @date2016年1月4日下午3:57:32 * @version 1.0 */public class MyObserver2 implements Observer {/** * 当被观察发生变化时的响应 * <p>Title: update</p> * <p>Description: </p> * @param o * @param arg * @see java.util.Observer#update(java.util.Observable, java.lang.Object) */@Overridepublic void update(Observable o, Object object) { //获得被观察者传递过来的对象参数 Article article =(Article)object; System.out.println("观察者2收到的消息:........");System.out.println("博主发表了新的文章,快去看吧!");System.out.println("博客标题为:" + article.getArticleTitle());System.out.println("博客内容为:" + article.getArticleContent());}}
package ObverserBlog;public class MainClass {public static void main(String[] args) {BlogUser user = new BlogUser();//添加观察者1user.addObserver(new MyObserver1());//添加观察者2user.addObserver(new MyObserver2());//发布bloguser.publishBlog("哈哈,博客上线了", "大家多来访问");}}
0 0
- 模式设计:观察者模式
- 设计模式-----观察者模式
- 设计模式-观察者模式
- 设计模式--观察者模式
- 设计模式:观察者模式
- 设计模式-----观察者模式
- 设计模式:观察者模式
- 设计模式-观察者模式
- 设计模式 观察者模式
- 设计模式-观察者模式
- 设计模式-【观察者模式】
- 设计模式-观察者模式
- 设计模式 -- 观察者模式
- 设计模式-观察者模式
- 【设计模式】观察者模式
- 设计模式- 观察者模式
- 设计模式- 观察者模式
- 设计模式--观察者模式
- java 代码中如何预防空指针异常
- Web 开发者文档和手册
- 开发中的Bean和Dao类
- Activity初步1
- system("Pause")你会用吗
- 设计模式--观察者模式
- 学习计划2
- iOS判断输入框不为空格以及空
- 远程DLL注入、卸载
- DELPHI调用JAVA WEBSERVICE方法 出现 null object 异常的原因
- 119_素数算法之 埃氏筛
- myeclipse启用/关闭debug模式
- 关于使用BeanUtils.copyProperties拷贝时,时间类型为空时转换异常
- 173,动画方法