面向对象之适配器模式

MengDe 115 2021-08-24

适配器模式:常用于接口、有返回值的场景,在不修改不违反开闭原则的情况下通过新增子类来实现适配接口、返回的值达到想要的效果。

话不多说,上代码:

<?php
/**
 * Created by MengDe.
 * @Author MengDe <9258405@qq.com>
 * @Date   2021/8/24 11:11
 *
 */
//适配器模式
//在普通tp模板渲染的过程中,我们是可以直接返回array类型的
class returnArr
{
    public static function result()
    {
        return ["张三", "李四"];
    }
}

$result = returnArr::result();
//此时  我们突然要新增API接口了,需要返回json格式
// 但是呢 我们又不想改变原代码的情况下
//我们该如何实现
//新增一个适配器

class AdaptiveReturn extends returnArr
{

    public static function result()
    {
        //把父类的旧的结果拿过来
        $result = parent::result();
        return json_encode($result);

    }

}

//API结果在调用过程中可以直接使用该类
$result = AdaptiveReturn::result();

在上面实例中,我们可以看到在不修改原类的情况家,我们增加了一个结果数组的适配器,让他能够适配API需要得json字段

从而达到了一个扩展的效果,不违反开闭原则。

上一篇:[Z-Blog插件]-附件管理PRO 1.0.1
下一篇:面向对象之装饰模式
相关文章