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 双向解耦 (抽象《-》实现)
代码结构 适配器继承目标接口,组合被适配者 抽象类组合实现接口

 

posted @ 2025-03-19 20:59  X__cicada  阅读(5)  评论(0)    收藏  举报