适配器模式是一种结构型设计模式,用于将一个类的接口转换成客户端期望的另一个接口。它允许原本由于接口不兼容而无法一起工作的类能够协同工作。
适配器模式通常用于以下几种情况:
集成旧代码:当需要使用已有的类,但其接口与现有的接口不兼容时,可以创建一个适配器来使它们能够一起工作。
封装第三方库:当需要使用第三方库或服务,但其接口与应用程序的接口不兼容时,可以创建一个适配器来将其接口转换为应用程序期望的接口。
提供统一接口:当需要将多个类或服务的接口统一起来,以便客户端可以以统一的方式调用它们时,可以使用适配器模式。
//适配器模式
// 目标接口
interface PaymentGateway {
public function pay($amount);
}
// 银行支付类
class BankPayment {
public function makeTransaction($amount) {
echo "Bank payment: $amount\n";
}
}
// 适配器类,将银行支付接口适配成目标接口
class BankPaymentAdapter implements PaymentGateway {
private $bankPayment;
public function __construct(BankPayment $bankPayment) {
$this->bankPayment = $bankPayment;
}
public function pay($amount) {
$this->bankPayment->makeTransaction($amount);
}
}
// 客户端代码
$bankPayment = new BankPayment();
$paymentGateway = new BankPaymentAdapter($bankPayment);
$paymentGateway->pay(100);
网友评论