设计模式四:适配器模式
适配器模式:
适配器类让原本不兼容的类可以合作共处。类似转换头。
<?php /** * 用户信息接口 */ interface UserInfoInterface{ public function userInfo(); } /** * json 返回的用户类 */ class UserInfoJson implements UserInfoInterface{ public function userInfo() { return json_encode(['user_name'=>'张三','age'=>30]); } } /** * 序列化 返回的用户类 */ class UserInfoSerialize implements UserInfoInterface{ public function userInfo() { return serialize(['user_name'=>'张三','age'=>30]); } } /** * 适配器类接口 */ interface userInfoAdaptor{ public function userInfoAdaptor(UserInfoInterface $userInfo); } class userInfo implements userInfoAdaptor{ public function userInfoAdaptor(UserInfoInterface $i) { // 判断结果是json 转为 序列化 if(!is_null($string = json_decode($i->userInfo()))){ return serialize($string); }else{ // 否则 转换为json $string = unserialize($i->userInfo()); return json_encode($string); } } } $userInfo = new userInfo(); var_dump($userInfo->userInfoAdaptor(new UserInfoJson())); var_dump($userInfo->userInfoAdaptor(new UserInfoSerialize()));