标签:信息处理 upd move ring array add 运行 @param 分享
/**
* 抽象主题角色
*/
public interface Topic {
/**
* 观察者注册
* @param observer
*/
void registerObserver(Observer observer);
/**
* 删除观察者
* @param observer
*/
void removeObserver(Observer observer);
/**
* 通知观察者
*/
void notifyObservers();
/**
* 主题状态变化
* @param msg
*/
void msgChange(String msg);
}
public class TopicImpl implements Topic{
private List<Observer> observerList = new ArrayList<Observer>();
private String msg ;
@Override
public void registerObserver(Observer observer) {
this.observerList.add(observer);
}
@Override
public void removeObserver(Observer observer) {
this.observerList.remove(observer);
}
@Override
public void notifyObservers() {
for(Observer observer : observerList){
observer.update(msg);
}
}
@Override
public void msgChange(String msg) {
this.msg = msg;
}
}
/**
* 抽象观察者
*/
public interface Observer {
/**
* 观察者收到信息做处理
* @param msg
*/
void update(String msg);
}
/**
* 观察者1
*/
public class ObserverImpl implements Observer{
@Override
public void update(String msg) {
System.out.println("ObserverImpl receive msg :" + msg);
}
}
/**
* 观察者2
*/
public class ObserverImpl2 implements Observer{
@Override
public void update(String msg) {
System.out.println("ObserverImpl2 receive msg:" + msg);
}
}
/**
* 测试类
*/
public class MainTest {
public static void main(String[] args) {
Topic topic = new TopicImpl();
Observer observer1 = new ObserverImpl();
Observer observer2 = new ObserverImpl2();
topic.registerObserver(observer1);
topic.registerObserver(observer2);
topic.msgChange("Java 是面向对象的语言");
topic.notifyObservers();
}
}
4、运行结果
标签:信息处理 upd move ring array add 运行 @param 分享
原文地址:https://www.cnblogs.com/tspeking/p/9172985.html