惯例,先贴一个他人的分享,我觉得说得很好
清风baron–桥接模式和适配器模式的区别
然后,我们再说说桥接模式。依然用动物园作为类比:
众所周知,德云社有一条狗,老郭的,老郭吧,会让徒弟喂狗。徒弟有很多个:孙越和小岳岳。喂的方式也有好几种:直接喂,嘴对嘴喂,用手喂,用盆喂。
这时候,园长发话了(老郭?):小岳岳,去嘴对嘴喂一下,让他们见见世面。
普通实现:
if(徒弟==小岳岳)
饲养员==小岳岳
if(方式==嘴对嘴)
饲养员.嘴对嘴(也就是小岳岳嘴对嘴喂了一次狗)
桥接实现:
首先定义一个接口,是饲养员接口,有很多个实现,小岳岳是其中一个实现。喂狗方式类似,一个接口,四种实现。那么过程就变成了这样:
new 小岳岳(嘴对嘴);
小岳岳.喂狗(请注意中间这个小点);
然后,完成了。是不是很优雅??
拓展1:看完上面的说明,是不是想到了什么?请回想一下前几篇提到的----工厂模式和建造者模式。如果能结合,那么获得小岳岳的过程就会更加优雅。
拓展2:把一类对象抽象出来,是什么行为?请回忆一下我没说过的java设计原则之一,依赖倒置。
本篇完。