设计模式

来源:互联网 发布:点对点网速测试软件 编辑:程序博客网 时间:2024/06/16 00:49

知识点:

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的方法。

原创粉丝点击