PHP中适配器模式的使用-创新互联

创新互联www.cdcxhl.cn八线动态BGP香港云服务器提供商,新人活动买多久送多久,划算不套路!

成都创新互联主要从事网站建设、网站设计、网页设计、企业做网站、公司建网站等业务。立足成都服务饶阳,10多年网站建设经验,价格优惠、服务专业,欢迎来电咨询建站服务:18982081108

这期内容当中小编将会给大家带来有关PHP中适配器模式的使用,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。

  1. 生活场景问题引入:

假如需要去国外旅游,游玩,现在电子产品很丰富,但是每个电子产品都是需要电源来做驱动,手机,电脑,相机。。。但是又有一个很显示的问题,电子产品是
很消耗电量的,电量没有了,就需要充电,在我们国家,我们买的电子产品出场带的电源充电器,一般都是220V的电压,但是世界很大,每个国家的要求(规定)
又是不同的,比如美国就是120V

  1. 原理:

将一个类的接口转换为另外一种接口,让原本接口不兼容的类可以兼容。

用户调用适配器转化出来的目标接口方法,适配器再去调用被适配者的相关接口方法

  1. 好处:

用户是看不到被适配者,属于解耦的操作

  1. 适配器模式属于结构型的设计模式

  2. 适配器模式的三种实现方式:

一、 类适配器

PHP中适配器模式的使用

根据上面的UML图,我们可以看出,需要一个美国电压的接口UsaInterface,一个适配器类Adapter,一个中国电压的接口Chine,一个使用者Computer
在这里,中国电压就是被适配者,美国电压是最后的输出(目标),就是是配置者

interface UsaInterface{
    public function outPut5V();}class China{
    private $voltage = 220;

    public function outPut220V()
    {
        return $this->voltage;
    }}class Adapter extends China implements UsaInterface{

    public function outPut5V()
    {
        // TODO: Implement outPut5V() method.
        $chinaVoltage = $this->outPut220V();

        return $chinaVoltage / 2 + 10 . "V";
    }}class Computer{
    public function index(UsaInterface $usa)
    {
        if ($usa->outPut5V() === "120V") {
            printf("可以在美国使用中国的电源插头给电脑充电了");
        } else {
            printf("不可以在美国使用中国的电源插头给电脑充电了");
        }
    }}class Client{
    public function __construct()
    {
        $adapter = new Adapter();
        $computer = new Computer();

        $computer->index($adapter);
    }}

二、对象适配器模式

对象适配器其实就是在类适配器的模式上做了一个调整,让适配器类Adapter不去继承被适配者的类,而是让它们组合在一起,这样就可以增加了使用的灵活
度,也不会暴露被适配者的很多方法(使用关联关系来代替继承关系【合成复用原则】)。同时,没有继承就没有办法去覆盖父类的方法重写了,也算是有好有坏吧。如下:

class Adapter implements UsaInterface{
    protected $china;

    public function __construct(China $china)
    {
        $this->china = $china;
    }


    public function outPut5V()
    {
        // TODO: Implement outPut5V() method.
        $chinaVoltage = $this->china->outPut220V();

        return $chinaVoltage / 2 + 10 . "V";
    }}

三、接口适配器(缺省适配器模式)

当不需要全部实现接口提供的方法时,可以先设计一个抽象类实现接口,并为接口提供默认的的空方法实现,那么改抽象类的子方法就可以有选择的覆盖父类的某
些方法来实现需求,(适用于一个接口不想使用所有的方法的情况)

上述就是小编为大家分享的PHP中适配器模式的使用了,如果刚好有类似的疑惑,不妨参照上述分析进行理解。如果想知道更多相关知识,欢迎关注创新互联-成都网站建设公司行业资讯频道。

网页名称:PHP中适配器模式的使用-创新互联
文章起源:https://www.cdcxhl.com/article46/codgeg.html

成都网站建设公司_创新互联,为您提供企业网站制作营销型网站建设用户体验品牌网站制作静态网站建站公司

广告

声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 创新互联

商城网站建设