设计模式 - 监听器模式

知识点:

1.观察者模式为了解决什么问题?

2.观察者模式的组成部分。

3.简单的代码实现。


1.观察者模式为了解决什么问题?

现在这里有个实际的问题,微博用户A,B,C,D。用户B,C,D需要当用户A发了微博以后去评论。怎么用观察者模式来解决这个问题了?观察者模式能在A发布微博以后,提醒B,C,D 用户A发来一篇微博,你们可以去评论了。


2.观察者模式的组成部分。

三个部分组成:

a.事件,这里例子中就是用户A发来一个微博

b.事件源,这里例子中就是微博用户A,她可以发微博,删微博,更新微博等等

c.监听者,这里例子中就是微博用户B,C,D,他们想要知道用户A的各种动态


3.简单的代码实现。

下面的代码实现都是伪代码,主要为了帮助理解观察者模式。

事件代码:

class Event{
      SEND, DELETE, UPDATE
}

事件源:

class EventSource {
    List<Listener> listenerList = new ArrayList<Listener>();
    notifyListener(Event) {
         //这里遍历监听者,并且调用监听者的方法
    }
}


监听者:

class Listener {
     void doSometing() {
	//评论,点赞
     }
}

三个部分的代码都在这了,看一下他们是怎么运作的。

a.首先创建监听者对象B,C,D 并且将它们放到时间源的listenerList中。

b.事件源发出事件,通过notifyListener方法,遍历监听者。

c.监听者执行doSometing的方法。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值