00:00
好,下面我们再来看监听器设计模式。那首先大家要知道啊,监听器设计模式,它是观察者设计模式的一种实现,它并不是23种设计模式之一啊。其实我们说监听器设计模式和观察者设计模式,它就是一样的。只不过更具体了。有两点不同,一般情况下,我们对于监听器设计模式啊,定义的时候和观察者设计模式。主要有两点不同定义的时候,第一点这个监听器设计模式一般。就是一个被观察者。可以添加一个观察者,而不是多个。这是第一点不同,当然你也可以给它定义多个啊,第二个不同是我们你看啊,我们刚才写的这个观察者设计模式里边发送的信息。
01:01
我们观察者啊。被观察者发送的信息是一个字符串是吧?普通的字符串,那么。监听器设计模式,他发送的信息啊。不是字符串,而是一个对象。什么对象?这个对象有个专门的名字叫事件。叫做事件。所以这里面名字也改了啊,怎么改了。首先它这种对应关系啊,监听器设计模式里边的监听器实际上就是观察者,被监听对象就是被观察者。然后呢,这里边儿一些名字改了,改成什么了,你看。与观察者设计模式不同的是,被监听者的状态改变被定义为了一个对象,称为事件。
02:02
你注意是被监听者的。状态改变。也是他发送的消息。成为一个事件了。而不是。一个字符串。那被监听对象也也有了个新的名字,被监听的对象有了新的名字,叫什么叫事件缘,这个事件是由他发出来的,所以叫事件的源头嘛,事件源。对监听器的通知,我们发送那个通知不再叫通知了,叫触发,我们叫触发监听器。其实是一样的,就换了一些名字而已。但监听器设计模式在理解起来要比观察者设计模式要难一些。因为它里边多了一个对象啊,叫什么叫事件。
03:05
他就变得比较难了。那好,下边我们举一个例子啊,通过什么?通过对被监听者,也就是我们的世界云呐。所执行的增删改查cud操作。进行监听。你执行。不同的操作。那么我监听器会做不同的事情,我看到你被监听对象就是事件员,你事件员执行了。插入,那我这边就我这边的监听器就做一些相应的。工作。相应的动作哦,我看你执行的插入,我这做了一些这样的动作,你那执行了。删除,我这边监听器监听到了,马上就执行另外一些动作,你执行不同的操作,增删改善不同的操作,监听器就会做出不同的反应,这实际上和观察者设计模式是一个意思啊,好。
04:18
那下边我们就来挨着定义了。把这个关掉了。Java project。零二。恩。这是监听器是吧,Mod。首先定义什么?嗯,咱们这样这样吧,先定义事件吧,是不是我们先定义事件,你注意它也是代表一类啊,所以我们肯定都是定义的接口。
05:03
I。嗯,咱们是增删改查事件是不是CD。这样吧,Card com点北京power node点。你们吃吧。丁义。张。山改茶。事件。你注意啊,增人改台为什么叫CRD,知道不知道啊?说一下吧,C是什么?Create是create啊?
06:00
增加是吧。U是什么,对?就是。修改是吧,更新吗?RR是什么?知道不知道。DD你肯定知道delete删除R呢是。检索查询的意思,所以cud指的就是增删改查啊,是增删改查。好,那么事件啊,通常你需要注意。通常对于事件对象。
07:01
我们。一般是需要从事件对象中获取到。事件源对象的,我们一般是需要从事件对象中获取到事件源对象的。也就是说,我拿到事件。对象了,就应该从里边能找到施建云是谁。所以我们这里边儿提供什么方法提供这个。获取到事件源对象方法,事件源I我们现在没有啊是吧,没定义呢,咱们先给他写上吧,呃,事件员咱们叫event s吧。
08:00
是演员吗?Get event。Sauce。S不好,这个不好,这个接口用这个名字不好,这样吧,就是。事件原是什么?是不是可被监听的呀?我们就叫它勒。拷贝监听的。用这个接口。这是或许事件原。对象吧,当然我们现在没有它啊,没有它创建这是个接口啊。啊,射箭员。好,先不管它啊,先把这个事件定义完毕。
09:05
创建事件原创建事件原有了,再往下。不是获取事件原由了,我们这个里边啊,我们本类这个程序呢,还想让它获取什么呢,还想让他获取到事件类型,我们这儿分着事件类型的什么事件类型增删改查呀。所以我这儿。我的事件类型是字符串,虽然还没有定义呢,啊,还没有定义呢,一会儿定义字符串,Get event获取事件类型,现在事件都有些什么类型,那么我在这要。声明事件类型,我这有增删改杀四类四种类型啊,有四种类型啊,那我就这样写了string。
10:13
曾曾,这样吧。Create。一。我这写上。可以吧?脏山改茶是吧?CU吗,You up,哎,Update see you are rerival。Delete。
11:04
Create。Update。Delete是吧,这是生命的时间类型,你注意啊,我为什么这儿写的是大写的?啊,我为什么这儿写的是大写的。在接口里边,我们大家知道你声明的方法,这里边的方法你不写它也是什么的,Public abstract对吧,不写它也是公共抽象的。没问题吧,而对于接口里边声明的这种成员变量,你不写它也是public。
12:05
Static。公共静态的,你写不写它都是公共静态的,所以我们就不写它了啊。好,这不多说了,这是基本的东西啊,我们大家应该都清楚。那我获取事件类型其实就是这个东西,获取的就是它啊。OK。这定义的什么?这是定义的事件。接口。好了。那再来说他吧,是不是这是什么接口。事件语言接口啊。事件源,想想事件源有什么事件员,你得对比的,谁想啊对比的,我们刚才写那个观察者设计模式,它比较简单,观察者设计模式里边。
13:04
是不是那个被观察者?和这这个试检员实际上是相同的,或者说我们这儿的试检员就相当于那个被观察者,那那个被观察者我们当时里边写的什么,写的是不是三个方法添加。观察者。这个删除观察者和。发出通知是吧,那这儿不一样的地方是。他观察者就一个。在。你注意在这个监听器设计模式里边啊,观察者就一个,实际上也就是说监听器就一个,所以它不是添加,这一般不用A了,用的是什么。用的是set,这方法名一般都叫set啊,Set。什么东西?Sat监听器。
14:01
Set listener。Erer I。哎,这是我。设置天天设置这个监听器,这个一般不叫设置了,叫什么叫注册。叫注册监听器,就是为事件员注册监听器,实际上就是原来说那个添加观察者呀。还有什么?我们在写观察者设计模式里边那个被观察者是不是还有一个发出通知啊?那这不叫发出东施了,而叫。叫什么叫触发监听器?处。
15:03
发。监听器。触发监听器VO trigger是触发的意思啊,触发监听器。靠什么事件呢,Icd?靠他靠事件来触发监听器呢。当然我们现在是不是没有监听器接口啊定义。监听器。啊,这是。
16:05
哎。怎么回事?好。监听器接口监听器接口我们想想这时候就得类比着谁观察者设计模式里边那个观察者,你观察者可以干嘛?是不是处理消息啊,是不是这还发出的处理消息呢?是不是?那监听器设计模式里边这个监听器可以做什么,一样也是处理。只不过它处理的不是消息,而是事件,所以它是handle event是吧,我就不写那个event了,直接给这写event了,IC event。
17:02
这是干嘛呢?处理。实践。处理事件。好,这样的话,我们监听器设计模式里边用到的。接口啊,就都定义完毕了。
我来说两句