PHP设计模式-适配器模式
<?php //旧的日志类 class OldLogger { public function writeLog($messgae){ echo "Old Logger : " . $messgae; } } interface LoggerInterface { public function log($messgae); } class LoggerAdapter implements LoggerInterface { private $oldLogger; public function __construct(OldLogger $oldLogger) { $this->oldLogger = $oldLogger; } public function log($message){ $this->oldLogger->writeLog($message); } } $oldLogger = new OldLogger(); $logger = new LoggerAdapter($oldLogger); $logger->log("hello Adapter Pattern!");
适配器模式VS桥梁模式
| 特性 | 适配器模式 | 桥梁模式 |
| 目的 | 解决接口不兼容问题 | 分离抽象与实现,支持独立扩展 |
| 应用阶段 | 事后补救(已有代码无法修改) | 预先设计(解耦抽象与实现) |
| 关系方向 | 单向适配如A-》B | 双向解耦 (抽象《-》实现) |
| 代码结构 | 适配器继承目标接口,组合被适配者 | 抽象类组合实现接口 |

浙公网安备 33010602011771号