定义
将某个对象的接口适配为另一个对象所期望的接口,adapter模式使原本由于接口不兼容而不能一起工作的类可以一起工作
使用场景
需要的东西在面前,但却不能用,而短时间又无法改造它,于是就想办法适配
系统的数据和行为都正确,但接口不符时,应该考虑使用适配器,目的是使控制范围之外的一个原有对象与某个接口匹配。适配器模式只要应用于希望复用一些现存的类,但接口又与复用环境要求不一致的情况
这是一种“亡羊补牢”的方法。
首选的方法应该是重构代码,统一接口。
用于 两个类功能相同或相似
在项目中需要使用第三方组件时,常用到此模式
事后控制不如事中控制,事中控制不如事前控制
#原始类,用户期望的接口
class Target{
public function connect(){
return "普通连接成功";
}
}
#需要被适配的类
class Adaptee{
public function specificConnect(){
reutrn "特殊连接成功";
}
}
#适配器
class Adapter extends Target{
private $Adaptee = new Adaptee();
public function connect (){
$Adaptee->SpecificConnect();
}
}
#***************客户端****************
#适配前
$Target = new Target();
echo $Target->connect();
#适配后
$Target = new Adapter();
echo $Target->connect();