什么是适配器模式?
简单来说,我想买一根充电线,我买一根安卓的?还是买一根苹果的?
我也不确定,因为我以可能会换手机,对于我的形式我也不确定。
所以,我要买一根可以同时适配 安卓/苹果 的线。
所谓适配器,就是这样。
适配器模式的应用场景?
在我们的实际项目中,会引入 第三方 的库。
这个第三库并不是我们维护的,可能在之后的某次大版本升级时,更换了某些关键函数的名称。
这时我们非常想使用第三方库里面的新特性,但是在程序中充满了旧函数。
很尴尬,是吧。
所以在这里引入适配器模式,不管底层怎么变化。我都有一个统一的接口来返回。
简单实现一个适配器
记住我们要做什么,就是新建不改变的一套接口。
用来适配不断变化的。
代码的实现方式有很多。
这里是我的一套简单的实现。
// 适配器 class Cache { public $drive; public function __construct() { $this->drive = new Redis(); } public function get($key) { return $this->drive->get(); } public function set($key, $name) { return $this->drive->set(); } } //服务端 class Redis { public $_drive; public function __construct() { $this->_drive = new Redis(); } public function get($key) { return $this->_drive->get(); } public function set($key, $name) { return $this->_drive->set(); } }