设计模式

一、介绍

适配器模式是一种结构型设计模式, 它能使接口不兼容的对象能够相互合作。

适配器可担任两个对象间的封装器,它会接收对于一个对象的调用,并将其转换为另一个对象可识别的格式和接口。

适配器模式在 PHP 代码中很常见。 基于一些遗留代码的系统常常会使用该模式。 在这种情况下, 适配器让遗留代码与现代的类得以相互合作。

应用场景:

(1)当你希望使用某个类,但是其接口与其他代码不兼容时,可以使用适配器类。

(2)如果您需要复用一些类,他们处于同一个继承体系,并且他们又有了额外的一些共同的方法,但是这些共同的方法不是所有在这一继承体系中的子类所具有的共性。

二、优缺点

优点:

  • 单一职责原则:你可以将接口或数据转换代码从程序主要业务逻辑中分离。
  • 开闭原则:只要客户端代码通过客户端接口与适配器进行交互, 你就能在不修改现有客户端代码的情况下在程序中添加新类型的适配器。

缺点:

  • 代码整体复杂度增加,因为需要新增一系列接口和类。

三、核心结构

Adapter(适配器):最主要的就是这个适配器类,用于适配、扩展功能或接口。

四、代码实现

1、应用场景1

当你希望使用某个类,但是其接口与其他代码不兼容时,可以使用适配器类。

例如:有一台电脑显示器本身是VGA的数据线,但现在你手里只有HDMI的数据线,这个时候只有有个适配器(转接头)就可以使用。

(1)LcdInterface类本身相当于电脑显示屏,vga()方法相当于电脑显示屏自带的vga格式的接口

<?php
/**
 * Created by PhpStorm
 * Author: fengzi
 * Date: 2024/8/1
 * Time: 15:47
 */

namespace app\admin\service\mode\adapter\other;

/**
 * LcdInterface接口类本身相当于电脑显示屏
 * vga()方法相当于电脑显示屏自带的vga格式的接口
 */
interface LcdInterface
{
    public function vga();
}
10-18 10:15