观察者模式:当一个对象发生变化的时候,其它依赖该对象的对象都会收到通知,并且随着发生变化。
public interface Observer
{
void update();
}
public class ObserverA implements Observer
{
@override
public void update()
{
System.out.println("observerA has observered");
}
}
public class ObserverB implements Observer
{
@override
public void update()
{
System.out.println("observerB has observered");
}
}
public interface Subject
{
//添加观察者
public void add(Observer observer);
//删除观察者
public void del(Observer observer);
//通知所有的观察者
public void notifyObservers();
//自身的操作
public void operation();
}
public abstract class AbstractSubject implements Subject
{
private Arraylist<Observer> vector = new ArrayList<Observer>();
@override
public void add(Observer observer)
{
vertor.add(observer);
}
@override
public void del(Observer observer)
{
vector.remove(observer);
}
@override
public void notifyObservers()
{
for(Observer observer : vector)
{
observer.update();
}
}
}
//具体的被观察者对象
public class MySubject extends AbstractSubject
{
@override
public void operation()
{
System.out.println("update self");
notifyObservers();
}
}