您的位置:首页 > 其它

23中设计模式-行为型1-观察者模式

2016-05-30 22:39 573 查看


Theme.java

public interface Theme {
abstract void addObserver(Observer observer);
abstract void removeObserver(Observer observer);
abstract void service(String notice);
}


ConcreteTheme.java

public class ConcreteTheme implements Theme {
private List<Observer> observer=Collections.synchronizedList(new ArrayList<Observer>());
@Override
public void addObserver(Observer observer) {
this.observer.add(observer);
}

@Override
public void removeObserver(Observer observer) {
this.observer.remove(observer);
}

private void notice(String notice) {
if(this.observer.size()!=0){
for(Observer o : this.observer){
o.update_before(notice);
System.out.println(notice);
o.update_back(notice);
}
}else{
System.out.println(notice);
}

}

@Override
public void service(String notice) {
notice(notice);

}

}


Observer.java

public interface Observer {
abstract void update_before(String notice);
abstract void update_back(String notice);
}


ConcreteObserver.java

public class ConcreteObserver implements Observer {

@Override
public void update_before(String notice) {
// TODO Auto-generated method stub

}

@Override
public void update_back(String notice) {
// TODO Auto-generated method stub

}

}


DemoTest.java

public class DemoTest {
@Test
public void test1(){
Theme theme=new ConcreteTheme();
theme.addObserver(new Observer(){
@Override
public void update_before(String notice) {
System.out.println("监听前1");
}
@Override
public void update_back(String notice) {
System.out.println("监听后1");
}
});
theme.service("Hello");
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: