应用场景:尚没有找到适合的场景。
代码实现:
通知者:
package designModel.observer;
import java.util.Observable;
import java.util.Observer;
public class UserNotify extends Observable{
public UserNotify() {
this.addObserver(new UserObserver());
}
@Override
public void notifyObservers() {
this.setChanged();
super.notifyObservers();
}
@Override
public void notifyObservers(Object arg) {
this.setChanged();
super.notifyObservers(arg);
}
}
观察者:
package designModel.observer;
import java.util.Observable;
import java.util.Observer;
public class UserObserver implements Observer{
@Override
public void update(Observable o, Object arg) {
System.out.println("user 更新数量:"+arg);
}
}
测试:
package designModel.observer;
import java.util.List;
import designModel.decorator.Dao;
import designModel.decorator.UserDao;
public class UserObserverTest implements Dao{
private UserDao user;
private UserNotify notify;
public UserObserverTest(UserDao user,UserNotify notify) {
this.user = user;
this.notify = notify;
}
@Override
public int insert() {
int num = user.insert();
notify.notifyObservers(num);
return 0;
}
@Override
public List<Object> queryForList() {
// TODO Auto-generated method stub
return null;
}
public static void main(String[] args) {
UserObserverTest test = new UserObserverTest(new UserDao(),new UserNotify());
test.insert();
test.insert();
}
}
注释:Observable和Observer为jdk自带,此例子实现了在新增user后,通知观察者进行打印更新数量