💎一站式轻松地调用各大LLM模型接口,支持GPT4、智谱、豆包、星火、月之暗面及文生图、文生视频 广告
1、什么是适配器模式? 适配器设计模式只是将某个对象的接口适配为另外一个对象所期望的接口 2、实例讲解 ~~~ <?php /* * 适配器设计模式 * -------------- * @author liuxinming */ /*早先设计的一个类*/ class UserInfo{ /** * 根据用户UID获取用户信息 * @param inti $uid 用户ID * @return array $userinfo 返回用户信息 */ public function getUserInfo($uid){ //相关处理 //DB层,从数据库查询用户信息 $userinfo=array( 'uid'=>1, 'username'=>'liuxinming', ); return $userinfo; } } /** * 适配器类,目的是在新需求增加的情况 不修改以前公共接口类,通过对适配器UserInfoIntegral用户积分类的扩展来满足新需求 */ class UserInfoIntegral extends UserInfo{ public function getUserIntegral($uid){ $integral=array( 'integral1'=>2, 'integral2'=>3, ); return $integral; } public function getUser($uid){ $userall=array( 'userinfo'=>$this->getUserInfo($uid), 'userintegral'=>$this->getUserIntegral($uid), ); return $userall; } } /** * 获取用户信息客户端类 */ class MyObject{ public function write($uid){ $UserInfoApp= new UserInfoIntegral(); return $UserInfoApp->getUser($uid); } } $l=new MyObject(); print_r($l->write(1)); ?> ~~~ 运行后输出如下: ~~~ Array ( [userinfo] => Array ( [uid] => 1 [username] => liuxinming ) [userintegral] => Array ( [integral1] => 2 [integral2] => 3 ) ) ~~~