观察者模式(Observer)解析例子
来源:互联网 发布:mac英文联想输入法 编辑:程序博客网 时间:2024/06/15 19:18
摘要:本文深入浅出的讲述了设计模式中的模式属于行为型模式,其意图是定义对象间的一种一对多的依赖关系,当一个对象的状态发生改变时,所有依赖于它的对象都得到通知并被自动更新。在制作系统的过程中,将一个系统分割成一系列相互协作的类有一个常见的副作用:需要维护相关对象间的一致性。我们不希望为了维持一致性而使各类紧密耦合,因为这样降低了他们的可充用性。这一个模式的关键对象是目标(Subject)。一个目标可以有任意数目的依赖它的观察者,一旦目标的状态发生改变,所有的观察者都得到通知,作为对这个通知的响应,每个观察者都将查询目标以使其状态与目标的状态同步。这种交互也称为发布-适用性:在以下的任一情况下可以使用观察者模式:
l当对一个对象的改变需要同时改变其它对象,而不知道具体由多少对象有待改变。
l例如:老师又电话号码,学生需要知道老师的电话号码以便于在合时的时候拨打,在这样的组合中,老师就是一个被观察者(所示:
1参与者:
:目标知道它的观察者。可以有任意多个观察者观察同一个目标。
观察者,具体目标,将有关状态存入各当他的状态发生改变时,向他的各个观察者发出通知。
:
对象的引用。
实现协作关系:
发生任何可能导致其观察者与其本身状态不一致的改变时,他将通知他的各个观察者。
对象可向目标对象查询信息。相关代码:
public Subject{
voidpublic notice();
代码:
public Observer{
}
observer;
public Teacher phoneprivate;
Teacher(){
= new voidstudents voidstudents voidfor i=0;i< ((Observer) }
phone }
String getPhone(){
}
代码:
public Student nameprivate;
Teacher nameteacher voidout+"\nTeacher'sphone:");
public update(){
= }
代码:
import static main(String[] args){
Vector();
Teacher();
( Student st = "lili" t.attach(st);
"88803807"for i=0;i<10;i++)
"88808880"for i=0;i<10;i++)
}
模式的最知名的应用是在MVC模式可以很好的应用在文档和图表程序的制作中。
0 0
- 观察者模式(Observer)解析例子
- 观察者模式(Observer)解析例子
- 观察者模式(Observer Pattern)例子
- 观察者模式(Observer Pattern)案例解析
- Observer 模式 观察者模式
- Observer模式 观察者模式
- 观察者模式(observer行为型)c#简单例子
- 设计模式-深入解析观察者模式(Observer)
- 观察者模式(OBSERVER)
- 观察者(Observer)模式
- 观察者模式(Observer Pattern)
- 观察者(Observer)模式
- Observer(观察者)模式
- 观察者(Observer)模式
- 观察者(Observer)模式
- 观察者模式-Observer
- 观察者(Observer)模式
- 观察者设计模式Observer
- android真实项目教程(二)——漫画App初构_by_CJJ
- 安卓用http网络访问在模拟器上没问题到真机上测试挂掉解决办法!
- linux下安装tomcat7.0.53
- 手机型号的简单判断
- [转]cocos2d-x中的CCArray
- 观察者模式(Observer)解析例子
- android真实项目教程(三)——首页初点缀_by_CJJ
- 改变xcode编码风格-命令行
- 最大流最小割求割边
- mysql 字符集设置查看
- mongodb的安装使用(windows版本)
- ttribute value is quoted with " which must be escaped when used within the value
- windows下使用vs2008编译x264支持多线程
- iOS中正则表达式验证字符串