对设计模式—Observer模式的认识

今天上班偷偷的把qq打开了,一会收到许多群里发的消息,这让我想到了Observer模式
。 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");
}
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值