温馨提示:文本由机器自动转译,部分词句存在误差,以视频为准
00:00
看一下设计模式的桥接模式。我们还是一个问题展开哈,这是手机操作问题。那现在呢,我们现在针对不同的手机类型呢,呃,不同的手机类型还有不同的品牌,我们要编程实现这样的操作,比如说开机,关机,上网打电话等等这样操作。那按照我们传统的方式来分的话呢,应该是先有一个手机,再把这个手机呢,分成不同的类型。比如说折叠式的,折立式的,旋转式的。那这个在折叠式里面呢,我们会有什么呀,三种不同品牌的手机,比如说华为,小米,VIVO,那在折叠式这块呢,也一样的,旋转式呢,也会有是吧,一般来讲你会这么去设计。那如果我们按照这个传统的方式来设计,我们来看看他对应的类图会变成什么样子呢?那这有个form。
01:01
这个缝呢,有个call方法,比如说打电话的方法,然后呢,我们让折叠式的直立式的s slide slide式滑盖式的。那么这三种呢,去继承,就是按刚才的设计方案让他去继承form,然后呢,每每一种样式的手机下面有不同的品牌手机,比如说华为,VIVO,小米,然后呢,我们在这里把这个靠方法进行一个重写。就是根据你不同的品牌,你打开手机的方式可能不一样。OK,那大家可以看到这种方式设计。应该说还是可以,就是说从功能上还是可以实现,但是大家有没有发现这样设计的问题是什么?大家有没有发现,同学们可以想,如果我们再增加一种新的样式,比如说是旋转式的。表示旋转式的简写。一个转。当我们设计一个旋有一个旋转式样式的手机,就意味着我会增加一个这样的类。同时下面会再写三个品牌的手机,分别是华为、小米和VIVO。
02:12
啊,大家有没有发现,就是当我们去增加一种样式,就会把下面所有的品牌的手机重新去创建一下,同学们想是不是这样就违反了单一原则,而且我们这个类会越来越多。是这样子的同学们,因此呢,我们经过这个分析,我们发现传统方案解决手机操作问题呢,存在如下的问题,第一个扩展性的问题。扩展性呢,我们会存在这个内爆炸。就说我如果我们再增加一个样式,比如旋转式,我们就需要增加各个品牌手机的类,同样如果我们增加一个品牌。比如说呃,在就以前面这个为例,比如说现在我们要增加一个新的手机,叫什么呢?叫苹果手机Apple Apple。或者是呃,一个其他的手机类型吧,呃,其他手机,比如说现在我们说苹果。
03:05
苹果手机。那大家想,如果你增加一个苹果手机,就意味着你这个这个苹果手机会在folded upright还有时代的下面都要增加,是不是还是很麻烦呢?是不是很麻烦?因此呢,我们考虑到增加新的品牌手机也会在各个样式要增加,这样呢,就违反了单一职责原则。当我们在要手机样式时,同时要增加品牌和品牌手机好,这样增加了我们代码的维护成本,那解决方案呢,就是待会儿我们要讲的桥接模式。好,这就是我们要一会要引出的调节模,至于调节模式是什么样子的,他能解决什么问题,我们下一集为大家进行讲解。
我来说两句