今天上班偷偷的把qq打开了,一会收到许多群里发的消息,这让我想到了Observer模式
。 Observer模式的功用,是希望两个(或多个)对象,我们称之为Subject和Observer,当一方的状态发生改变的时候,另一方能够得到通知。也就是说,作为Observer的一方,能够监视到Subject的某个特定的状态变化,并为之做出反应。
我对观察者理解就是一个中心点把所有变化的信息都收集上来,这个中心点有一个名单,根据名单把所有变化的信息散发出去。下面是对学生和老师发送的会议通知:
。 Observer模式的功用,是希望两个(或多个)对象,我们称之为Subject和Observer,当一方的状态发生改变的时候,另一方能够得到通知。也就是说,作为Observer的一方,能够监视到Subject的某个特定的状态变化,并为之做出反应。
我对观察者理解就是一个中心点把所有变化的信息都收集上来,这个中心点有一个名单,根据名单把所有变化的信息散发出去。下面是对学生和老师发送的会议通知:
public interface Subject //
{
public void register(Object object);
public void remove(Object object);
public void nofiyObserver();
public void setMeeting(String meeting);
}
public class SubjectCenter implements Subject
{
private List<Object> list = new ArrayList<Object>();
private String meeting;
public void register(Object object);
{
list.add(object);//survey name list
}
public void remove(Object object);
{
if(list.indexOf(object) > 0) //remove name list
list.remove(i);
}
public void nofiyObserver();
{
for(int i = 0;i < list.size();i++)
{
Observer observer =(Observer)list.get(i);
//nofiy student and teacher join to meeting
observer.update(meeting);
}
}
public void setMeeting(Sting meet)
{
this.meeting = meeting;//the school have a meeting;
nofiyObserver(); // send meeting message
}
}
public interface Observer
{
public void update(String info);
}
public class Student implements Observer
{
public void update(String info)
{
System.out.println("Hi Guys ,Today have a meeting about" +info);
}
}
public class Teacher implements Observer
{
public void update(String info)
{
System.out.println("Hi Sir,Today have a meeting about"+info);
}
}
public class TestObserver
{
public static void main(String[]args)
{
Subject subject = new SubjectCenter();
Oberver student = new Student();
Oberver teacher = new Teacher();
subject.register(student);//add student observer
subject.register(teacher); //add teacher observer
subject.setMeeting("Wrap-up meeting");
}
}