介面卡模式(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().')';
    }
}