00:00
调节模式的注意事项,我们来了解一下。那么调节模式的注意事项是这样子哈,首先第一个呢,它把抽象和实现分离了,所以说让我们系统的灵活性。增加了第二个呢,呃,他把这两个分开过后,有助于我们系统进行这个分层设计,可以产生更好的结构化的系统,就是从结构上来说呢,它更加灵活对吧。呃,第二个呢,我们可以看到在系统的高层部分,只需要知道抽象部分和实现部分的接口就可以,其他的有具体的业务类来完成。而且大家有发现调节模式,它替代了是这个多层进多多层继承方案,可以减少我们子类的个数,降低管理成本。对,但是呢,他这里面也会有一些需要同学们注意的地方,比如说条件模式引入呢,他对我们系统的理解,还有这个设计的难度会有一些增加,为什么?因为你首先要分析出哪一个是抽象的这这个层次,哪些是实现这个层次,对吧?比如说前面那个手机,那你就得分析出来品牌brand,它是属于实现这一层的,而它的具体的这个样式,比如说折叠式还是直立式等等,那么它是属于抽象这一层。
01:20
所以这个呢,需要我们自己去把这个正确的识别出来,就说调节模式需要我们正确识别出系统的两个独立变化的维度,因此呢,这样我们使用的时候就有一定的局限性,所以它有应用场景,那具体来说,我们调节模式的应用场景有哪些呢?各位同学看一下。对于那些不希望使用继承。或因为多层多层次的继承,导致系统内,系统内里面的这个类的个数急剧增加,系统呢,调节模式特别适合,因为它调节过后呢,可以减少我们类的个数。第二个常见的应用层级,比如像刚才讲的GDBC驱动,还有银行转账系统,因为银行转账系统呢,它可以把它分成两个维度,比如说分类是网上柜台,ATM机。
02:06
他转账的用户类型可以用普通用户,银卡金卡用户,所以说这个呢就是实现,而这个就是什么呀,这个就是我们的抽象层,同样消息管理也是类似,消息里面有类型对不对,有即时消息,有延时消息,消息分类呢,有手机邮件,QQ,那这个就是我们实现层,这个就是我们抽象层,所以说它这个呢,可以把它分开,分开应用场景。你要根据应用场景来区分哪些是抽象的。在抽象这一层的哪些是实现的对吧?是做了一个接口来实现的,同学们,这是我们需要注意的应用场景,那现在呢,我们把前面讲的这个桥接模式的内容进行一个简单的梳理,我们来看一下我们讲了哪些内容好捋捋。呃,那么我们怎么来讲这个调节模式的呢?把内容梳理一遍。
03:02
把内容梳理一遍,来加一个分页符。这位讲的是桥接。桥接模式。桥接模式。好,呃,首先我们仍然是先提出了一个关于手机操作的问题,还记得吧?那这个手机操作的问题就是这样子,就是说我们针对不同手机的类型。针对手机不同类型,还有不同的品牌,那么我们要去实现它的一系列操作,比如说开机对不对,打电话,那这样子我们最容易想到的呢,肯定就是来一个分层嘛,就是比如说我先做一个手机,再折叠式再进,这样就做成了一个多层次的继承关系,是不是这样造的?这是我们最容易想到的方案。但是这个方案呢,并不是特别好,所以说我们分析出来他的问题,那如果按照这种方式来说的话呢,它存在的一个问题就很明显了,来我们看看它的问题是这样子。
04:05
就是它存在的问题呢,就是它会导致我们这个类它会变的很多,是不是你看这地方我们这个对应的类图。对应。就是叫传统方法对应对应的这个类图。对不对,对应这个类图,这个类图呢,你们可以看到它将来会变的越来越庞大。好,然后呢,我们就分析出来了这种传统设计模式,它可能存在的问题。他可能存在的问题,我们把它写到这里来。对吧,传统模式可能存在的问题就这样子。那问题呢,有三个,有三个这样的问题,主要的问题会出现我们这个内爆炸。啊,就是你的维护的成本也会增加,因为我们增加一个品牌,或者增加一个增加一个手机的样式的话,我们要增加样式类,同时还要把下面各个品牌的手机也要,呃,也要把它实现一遍,就很麻烦,于是我们就推出了桥接模式的这个概念。
05:10
那调节模式既然出来了,我们首先呢给同学们介绍了一下调节模式它是什么?先做了基本的介绍,是这样子的吧。那圈圈模式。它的基本内容呢,我们用三点进行了一个阐述。进行了一个阐述,好,在这列出来。啊,哪三点我们来看一下啊,哪三点第一点呢。诶,这第一点就是说它将实现。和抽象,诶,放在两个不同的这个类的层次中,使两个层可以独立变化。这样子呢,它可以实现我们内的最小设计原则,就说增加一个功能,我们这个类增加的也是最少的,对吧,所以说这样就OK了,然后我们在这边又画了桥接模式的原理图,就它的类图画了一下。
06:03
那么这个桥接模式的原理图是这样子的。是这样子的吧,同学们看这诶这样子,他这里面就出现了几个核心的角色,哪些角色呢。有。这个接口。实现接口,这是实现实现的这个具体的子类有抽象类,有抽象类的实现内有客户端,所以说我们针对这个类图呢,我们做了一个说明。对吧,我们对这个上图上图做了说明。对,那这边我们就把他的核心的角色给他分析出来了,来看一下,具体来说就是诶。写错了啊,具体来说就是在这里做了一个说明六点。给大家整理到这里来。6DOK。这这些呢,大家要有一个认识。好,当我们把这个图说完了以后,我们自然就想到了用桥接模式来解决前面提出的这个问题。
07:06
来看一下。那具体来说我们怎么做呢先。呃,先对这个应用实例做了说明,下面我们画出了新的类图,就是呃类类就是使用。这样写啊,使用桥接,桥接模式对应的类图。哦,后面这个是代码对不对,大概是这样一个流程,那这个类图我们是怎么画的呢?打开这里。是在这画的,我记得是在上边。好,把这个保存了吧。在这里面,我们叫做break。Bridge里面有一个类图是这样子的,然后把这个类图我们拿过来。是这样子的,同学们把它呢放到这边来,具体的代码呢,因为比较多,我也没有办法一步一步的粘贴啊,那这样子我们直接把个bridge。把这个bridge这个文件夹给大家压一个包就完事了。
08:03
这是我们用桥接模式来解决手机使用问题的代码。好的,那把这个讲完了以后呢。对不对,我们。这把这个讲完过后呢,我们就对桥接模式它的在原在接DBC的源码位置做了一个分析,那在哪里我们会我们用到了调节模式呢,我这里分析出来的是这。就是我们在JDBC这个driver接口,通过这个,呃,通过这个driver这个接口呢,我们可以拿到对应的数据库的一个连接,在这里我们用到了它,然后呢,我做了一系列的源码分析,对不对,那这里我就不再把源码那块呃一点点粘贴了啊,我重重点就是把这个拿过来。把这个源码拿过来,同时是不是我们还对上面画了一个类图啊,对JDBC。源码源码分析的什么呀,类图,这个类图呢,可以比较清晰的把它。
09:07
的一个结构展现出来,在哪里呢?就在这儿,是不是在这儿画的同学们往这拉。在这里。是不是在这我们把这一个JDBC,它的一个源码的关系捋了一下。那这边呢,就是我们的实现层次,这边是我们的抽象层次,OK。好,我把它放到这里来完事。最后我们呢,给大家讲了一下调节模式的注意事项和它的什么呀,应用场景。和它的应用场景,呃。这里面它的注意事项主要是要给他注意一下,就是它的核心是用桥接模式来替代多层继承方案,减少子类的个数,这是它的最明显的约数,但同时呢,大家看到它这里面要求我们要正确的识别出系统的两个独立维度机,什么呀,一个是呃,就是抽象的那个和实现内存。
10:03
要把它要把它要把它识别出来。如果你把这个这个系统的两个独立变化的维度接抽象和实现,这这两个维度,你说你把它分析不出来,那就麻烦了,抽象和什么呢?和这个实现。这两个部分。对,那为了让大家认识的更清楚一点,我们把它的一个应用场景也做了一点说明。放在这,它的应用场景在这里。是这样子吧,应用场景我们整理到有这么几点对吧,第一个JDBC。我们刚才讲的有银行的转账系统也会用到,还有像这种消息的管理。诶,消息的管理,诶这写到这。消息管理好,OK,那这个地方呢,就是我们经常使用到的。啊,桥节模式的一个讲解,那对各位同学,那关于桥接模式呢,老师就给大家讲解到这里。
我来说两句