编程中的那些套路——关于适配器模式

该文章属于《编程中的那些经典套路——设计模式汇总》系列,并且以下内容基于语言PHP

今天我们来谈谈适配器模式。

想象一个场景:

有一个类方法它部署在服务器上,专门负责大多数语言都通用的JSON语言,而现在我需要调用这个类方法,但我不需要返回JSON格式的数据了,我要返回序列化后的数据,我现在如何处理呢?是上去服务器修改这个类方法吗?这不科学吧?因为我们原本编写好的代码最好就不要再改了,很容易造成风险的。(这也是也为了遵循开放封闭原则)。

如何处理呢?这时候就可以引入适配器模式。

具体看代码:

适配器模式.php

<?php
 
class JsonData {
 
    public function show(){
 
        $array = array('风扇','书','台灯');
 
        return json_encode($array);
 
    }
 
}
 
//序列化数据
 
class SerializeData extends JsonData{
 
    public function show(){
 
        $data = parent::show();
 
        $data = json_decode($data);
 
        return serialize($data);
 
    }
 
}
 
//对数据进行base64编码
 
class Base64Data extends JsonData{
 
    public function show(){
 
        $data = parent::show();
 
        return base64_encode($data);
 
    }
 
}
 
//XML extends OriginalData ...
 
$data = new SerializeData();
 
print_r($data->show()); //输出:a:3:{i:0;s:6:"风扇";i:1;s:3:"书";i:2;s:6:"台灯";}
 
?>
 

适配器模式就是在原始数据上又包装了一层,从而达到将原始数据转成你所需要的格式。

仔细想想:

其实适配器模式和装饰器模式有些相像,但是前者是改变数据结构(等),后者是装饰内容(等).

该文章属于《编程中的那些经典套路——设计模式汇总》系列

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值