- 0
- 0
- 约7.74千字
- 约 15页
- 2016-12-29 发布于重庆
- 举报
观察者模式_OBSERVER_案例详解
在23种设计模式中,观察者模式算是模式设计中的皇后,尤其是在我们做软件设计过的过程中所体现的更是立足无穷,再说它好,还不如来个实例不是更简单明了,我就把对其概念上的讲解以注释的方式写在代码注释中,如下所示:
//首先我们需要先定义一个接口为:抽象观察者
public interface Watcher{
?//再定义一个用来获取更新信息接收的方法
?public void updateNotify(Content content);
}
//其次定义一个接口为:抽象被观察者
public interface Watched{
?//在其接口中定义一个用来增加观察者的方法
?public void add(Watcher watcher);
?//再定义一个用来删除观察者权利的方法
?public void remove(Watcher watcher);
?//再定义一个可以实现行为变现并向观察者传输信息的方法
?public void notifyWatcher(Content content);
}
//再次就是定义一个类为:具体观察者并实现其接口抽象观察者
public class ConcreteWatcher implements Watcher{
?//并覆盖其方法
?public void updateNotify(Content content){
??? int id = content.getId();
?? ? ? ?String name = content.getName();
String address = content.getAddress();
System.out.println(id:+id++/n name:+name+/n address:+address);
?}
}
//最后就是定义一个类为:具体被观察者并实现其抽象接口抽象被观察者
public class ConcreteWatched implements Watched{
??//定义一个List来封装Watcher
??private ListWatcher list = new ArrayListWatcher();
?//并覆盖其方法
?public void add(Watcher watcher){
?? ? ? list.add(watcer);
?}
?public void remove(Watcher watcher){
list.remove(watcher);
?}
?public void notifyWatcher(Content content){
?? ? for(Watcher watcher : list){
?? ? ? ? ? ? ?watcher.updateWatcher(content);
?? ? ? }
?}
}
//以面向对象的方式来操作,需要定义一个实体来进行操作
public class Content{
?private int id;
?private String name;
?private String address;
?public void setId(int id){
?? ?this.id = id;
?}
?public int getId(){
?? ?return id;
?}
?public void setName{String name}{
?? ? = name;
?}
?public String getName(){
?? ?return name;
?}
?public void setAddress(String address){
?? ?this.address = address;
?}
?public String getAddress(){
?? ?return address
?}
}
//测试类
public classs Test{
?public static void main(String args[]){
//实例一个被观察者
?? ? Watched watched = new Watched();
//实例第一个观察者对被观察者进行观察
?? ? ? ?Watcher watcher1 = new Watcher();
//实例第二个观察者对被观察者进行观察
Watcher watcher2 = new Watcher();
//实例第三个观察者对被观察者进行观察
Watcher watcher3 = new Watcher();
//加入对其观察
watched.add(watcher1);
watched.add(watcher2);
您可能关注的文档
- altiris功能介绍.doc
- ALU算术运算器.doc
- alwayswithme钢琴谱.doc
- Ambzha财务报告.doc
- AMDCPU参数.doc
- AMDMantle性能暴涨10倍还支持N卡.docx
- amline配置参考.docx
- Android_JNI开发入门与提高.doc
- Android—API中文合集.doc
- Android原理揭秘系列之ViewViewGroup.doc
- 小区绿化施工协议书.docx
- 墙面施工协议书.docx
- 1 古诗二首(课件)--2025-2026学年统编版语文二年级下册.pptx
- (2026春新版)部编版八年级道德与法治下册《3.1《公民基本权利》PPT课件.pptx
- (2026春新版)部编版八年级道德与法治下册《4.3《依法履行义务》PPT课件.pptx
- (2026春新版)部编版八年级道德与法治下册《6.2《按劳分配为主体、多种分配方式并存》PPT课件.pptx
- (2026春新版)部编版八年级道德与法治下册《6.1《公有制为主体、多种所有制经济共同发展》PPT课件.pptx
- 初三教学管理交流发言稿.docx
- 小学生课外阅读总结.docx
- 餐饮门店夜经济运营的社会责任报告(夜间贡献)撰写流程试题库及答案.doc
最近下载
- 部编版六年级语文下册全册一课一练同步练习题配知识点归纳(含答案).pdf VIP
- 预制空心内夯载体桩技术.pdf VIP
- 2025版《全基础题型》高考数学-基础题(721例题型).docx VIP
- (正式版)DB21∕T 4190-2025 《既有住宅适老化改造建筑设计规程》.pdf VIP
- T_NBSC 001-2026(可口革囊星虫养殖技术规范).pdf
- 餐饮业食品安全管理八项制度.pptx VIP
- 法医学中的法医现场勘查学 .pdf VIP
- 中风的中医诊疗方案.pdf VIP
- 2025年自来水供应专属承包合同样本版.docx VIP
- (2025春新教材)人教版PEP版三年级英语下册全册教案件 .pdf
原创力文档

文档评论(0)