设计模式之---适配器适配器模式先考虑这种设计模式适用场景:假如我们有一个运行良好的接口以及其实现,(Version1
0,比如说是按照用户要求开发的日志系统,这个日志系统是基于文件记录的FileLogger),但是由于系统升级或者用户需求变化等,我们又设计了一个新的接口以及实现(Version2
0,比如说是按照用户的要求,让日志系统是基于数据库记录的DBLogger),并且这个新设计的接口也能良好运行
假如到此为止,我们还没看出设计模式的用武之地
然而,我们知道,用户的需求创意是无穷无尽的,现在用户说了,我们想同时用这两种日志系统
就是说,现如今的业务是运行在Version2
0的接口上,但是我要用Version1
好,需求出来了,那么怎么实现呢
两个接口的方法都不一致(兼容)
说起来也简单,大约有这么2套方案:1,我们按照DBLogger的接口,在重新开发一套,适用于文件系统的日志
2,直接修改Version1
先说第一种方案,这么做确实可以,而且很直观
但是在我们已完成相应功能的前提下,再重新写一套代码其实是没有必要的,并且代码复用性也不高
从这个角度考虑,如果有更好的办法,我们可以将这个方案pass掉
再说第二种方案,第二种方案也可以解决问题,但是它暴露的问题更加明显
如果直接修改第一版本的代码,那么很可能造成其他依赖这些代码的代码不能运行,也就是存在依赖关系的约束
这个方案还不如第一个方案,所以我们毫不犹豫的把它pass
两种方案都被否定了,下面就是适配器模式上场了
适配器模式作用:将一个接口转化为客户端希望的另一个接口,使得原本由于接口不相容的两个类,可以相互配合的一起工作
主要就是起一个转换器的作用,目的就是复用原来的功能,说白了就是让两个接口匹配起来
想想看,适配器的作用在生活中很常见,比如管道转接头,三相插座插口转换器等