知识大全 java 设计模式之 观察者模式(Observer)
Posted 知
篇首语:对搞科学的人来说,勤奋就是成功之母!本文由小常识网(cha138.com)小编为大家整理,主要介绍了知识大全 java 设计模式之 观察者模式(Observer)相关的知识,希望对你有一定的参考价值。
java 设计模式之 观察者模式(Observer) 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!
//Subject java
package youngmaster model Observer;
/**
* @author youngmaster
* @E mail:young * @version myEclipse
* @create time 上午 : :
*/
/**
* 察者模式属于行为型模式 其意图是定义对象间的一种一对多的依赖关系
* 当一个对象的状态发生改变时 所有依赖于它的对象都得到通知并被自动更新
* 在制作系统的过程中 将一个系统分割成一系列相互协作的类有一个常见的副作用
* 需要维护相关对象间的一致性 我们不希望为了维持一致性而使各类紧密耦合
* 因为这样降低了他们的可充用性 这一个模式的关键对象是目标(Subject)和观察者(Observer)
* 一个目标可以有任意数目的依赖它的观察者 一旦目标的状态发生改变 所有的观察者都得到通知
* 作为对这个通知的响应 每个观察者都将查询目标以使其状态与目标的状态同步 这种交互也称为发布 订阅模式
* 目标是通知的发布者 他发出通知时并不需要知道谁是他的观察者 可以有任意数据的观察者订阅并接收通知
*/
/**
* subject
*目标接口
*/
public interface Subject
public void addObserver(Observer o);
public void deletObserver(Observer o);
public void notice();
//Observer java
package youngmaster model Observer;
/**
* @author youngmaster
* @E mail:young * @version myEclipse
* @create time 上午 : :
*/
/**
*观察者接口
*/
public interface Observer
public void update();
//Teacher java
package youngmaster model Observer;
import java util Vector;
/**
* @author youngmaster
* @E mail:young * @version myEclipse
* @create time 上午 : :
*/
/**
*目标接口实现
*/
public class Teacher implements Subject
private String phone;
@SuppressWarnings( unchecked )
private Vector students;
@SuppressWarnings( unchecked )
public Teacher()
phone = ;
students = new Vector();
@SuppressWarnings( unchecked )
@Override
public void addObserver(Observer o)
students add(o);
@Override
public void deletObserver(Observer o)
students remove(o);
@Override
public void notice()
for (int i = ; i < students size(); i++) ((Observer) students get(i)) update();
public void setPhone(String phone)
this phone = phone;
notice();
public String getPhone()
return phone;
//Student java
package youngmaster model Observer;
/**
* @author youngmaster
* @E mail:young * @version myEclipse
* @create time 上午 : :
*/
/**
*观察者接口实现
*/
public class Student implements Observer
private String name;
private String phone;
private Teacher teacher;
public Student(String name Teacher teacher) this name = name; this teacher = teacher;
public void show()
System out println( Name: + name + \\nTeacher s phone: + phone);
@Override
public void update()
phone = teacher getPhone();
//Client java
package youngmaster model Observer;
import java util Vector;
/**
* @author youngmaster
* @E mail:young * @version myEclipse
* @create time 上午 : :
*/
/**
*测试类
*/
public class Client
/**
* @param args
*/
@SuppressWarnings( unchecked )
public static void main(String[] args)
Vector students = new Vector();
Teacher teacher = new Teacher();
for (int i = ; i < ; i++)
Student student = new Student( student + i teacher); students add(student); teacher addObserver(student);
teacher setPhone( );
for (int i = ; i < ; i++)
((Student) students get(i)) show();
System out println( \\n============================\\n );
teacher setPhone( );
for (int i = ; i < ; i++)
((Student) students get(i)) show();
cha138/Article/program/Java/gj/201311/27566
相关参考
Java程序性能优化-观察者模式(2)[2] 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! 图&
Java程序性能优化-观察者模式(1)[2] 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! pu
Java程序性能优化-观察者模式(1)[1] 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! &n
Java程序性能优化-观察者模式(2)[1] 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! &n
Java中使用观察者模式实现自定义事件 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! MyEve
代码如下:<?php//抽象主题interfaceSubjectpublicfunctionattach($observer);publicfunctiondetach($obser
故事 小雪是一个非常漂亮的女孩漂亮的女孩总是有很多的追求者而且追求者的队伍在不断的变动随时有人进入这个队伍也有人退出男孩们追求女孩时总是表现出%的关心当小雪私自游玩时总是不断收到追求者询问小
Java设计模式之Strategy模式 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! Strat
Java设计模式之Observer模式 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! Obser
Java设计模式之Command模式 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! Comman