适配器模式

概念

适配器设计模式只是将某个对象的接口适配为另一个对象所期望的接口。

场景

获取用户信息的类 随着时间 业务的扩张,需要获取更多的信息

代码

UserInfo 类,实现 getUserName 方法

<?php

// 早期的一个用户类,只实现获取用户名的方法  
class UserInfo
{
    public function getUserName()
    {
        return 'initphp';
    }
} 

MyOldObject 类,从 UserInfo 类中获取信息,输出用户名

<?php  

include_once("UserInfo.php");

class MyOldObject
{
    public function write()
    {
        $UserInfo = new UserInfo;
        echo $UserInfo->getUserName();
    }
}

$a = new MyOldObject;
$a->write(); 

UserInfoAdapter 类,随着时间推移,项目需求在变化,UserInfo 类无法满足需求,我们做了 UserInfo 类的适配器,满足新功能的需求

<?php 

include_once("UserInfo.php");

class UserInfoAdapter extends UserInfo
{
    public function getUserAge()
    {
        return 28;
    }

    public function getUser()
    {
        return [
            'username' => $this->getUserName(),
            'age' => $this->getUserAge(),
        ];
    }
} 

MyNewObject 类,新功能的类,需要打印出用户年龄和姓名,UserInfo 类无法满足需求,需要调用 UserInfoAdapter 适配器这个类

<?php  

include_once("UserInfoAdapter.php");

class MyNewObject
{
    public function write()
    {
        $UserInfoAdapter = new UserInfoAdapter;
        print_r($UserInfoAdapter->getUser());
    }
}

$a = new MyNewObject;
$a->write();  
执行结果

暂不能执行 多理解思路,突然感觉 设计模式就是面向对象的一种思维方式 写代码的方式

出自:https://learnku.com/docs/shxdledu/php-design-patterns-series-adapter/9292

彼特城博客
请先登录后发表评论
  • latest comments
  • 总共0条评论