面向对象之适配器模式

MengDe5个月前PHP483

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

话不多说,上代码:

<?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字段

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

相关文章

面向对象之装饰模式

目前有一个问题:新增了一个用户,但是我们要给他带上VIP的标识,带上用户组的标识,以后会添加更多的标识,在不违反开闭原则的情况下,我们该如何来实现呢?上代码:<?php /**  ...