//被觀察者接口,有添加觀察者對象,喚醒所有觀察者等方法申明。
public interface ISubject {
public void setName(String name);
public String getName();
public void addObserver(IObserver o);
public void notifyAllObserver();
}
import java.util.*;
public class Subject implements ISubject{
private String name;
List<IObserver> observers = new ArrayList<IObserver>();
public Subject(){}
public Subject(String name){
this.name=name;
}
public String getName(){
return this.name;
}
public void setName(String name){
this.name=name;
}
public void addObserver(IObserver o){
observers.add(o);
}
public void notifyAllObserver(){
for(int i=0;i<observers.size();i++){
observers.get(i).showInfo();
}
}
}
//觀察者接口。
public interface IObserver {
public void showInfo();
}
public class Observer implements IObserver{
private ISubject sjtref = null;
public void setRef(ISubject sjt){
this.sjtref=sjt;
}
public Observer(ISubject sjtref){
super();
this.sjtref=sjtref;
}
public void showInfo(){
System.out.println("Observering:"+sjtref.getName());
}
}
public class ObserverMain {
public static void main(String args[]){
//新建被觀察對象
ISubject subject = new Subject("Shen,Ziping");
//新建觀察者對象
IObserver observer1 = new Observer(subject);
//注冊
subject.addObserver(observer1);
//喚醒觀察者
subject.notifyAllObserver();
}
}
public interface ISubject {
public void setName(String name);
public String getName();
public void addObserver(IObserver o);
public void notifyAllObserver();
}
import java.util.*;
public class Subject implements ISubject{
private String name;
List<IObserver> observers = new ArrayList<IObserver>();
public Subject(){}
public Subject(String name){
this.name=name;
}
public String getName(){
return this.name;
}
public void setName(String name){
this.name=name;
}
public void addObserver(IObserver o){
observers.add(o);
}
public void notifyAllObserver(){
for(int i=0;i<observers.size();i++){
observers.get(i).showInfo();
}
}
}
//觀察者接口。
public interface IObserver {
public void showInfo();
}
public class Observer implements IObserver{
private ISubject sjtref = null;
public void setRef(ISubject sjt){
this.sjtref=sjt;
}
public Observer(ISubject sjtref){
super();
this.sjtref=sjtref;
}
public void showInfo(){
System.out.println("Observering:"+sjtref.getName());
}
}
public class ObserverMain {
public static void main(String args[]){
//新建被觀察對象
ISubject subject = new Subject("Shen,Ziping");
//新建觀察者對象
IObserver observer1 = new Observer(subject);
//注冊
subject.addObserver(observer1);
//喚醒觀察者
subject.notifyAllObserver();
}
}