适配器模式(PHP)

使用科学实验的现实世界示例,其中在不同类型的组织上执行某些例程。默认情况下,该类包含两个函数以分别获取组织或例程。在以后的版本中,我们使用新类来调整它以添加一个兼具两者的函数。这意味着我们没有编辑原始代码,因此不会冒任何破坏我们现有类的风险(并且没有重新测试)。

class Experiment {
    private $routine;
    private $tissue;
    function __construct($routine_in, $tissue_in) {
        $this->routine = $routine_in;
        $this->tissue  = $tissue_in;
    }
    function getRoutine() {
        return $this->routine;
    }
    function getTissue() {
        return $this->tissue;
    }
}

class ExperimentAdapter {
    private $experiment;
    function __construct(Experiment $experiment_in) {
        $this->experiment = $experiment_in;
    }
    function getRoutineAndTissue() {
        return $this->experiment->getTissue().' ('. $this->experiment->getRoutine().')';
    }
}