首页 > 解决方案 > 下面的代码中使用了哪种设计模式

问题描述

有人可以告诉我下面的代码中使用了哪种设计模式吗?任何帮助将不胜感激。
此代码已用于招聘测试(实时编码游戏测试)。所以我想知道答案,以防相同的代码回来。提前谢谢了。

        class UnixText
        {
        function write($txt){echo $txt;}
        function lf()   {echo "\n";}
    
        }
        
        class MSWindowsText
        {
        function write($txt){echo $txt;}
        function crlf()   {echo "\r\n";}
    
        }

        interface Writer
        {
        function write($txt);
        function newLine();
        }

        class UnixWriter implements Writer{
        private $target;
    
        public function __construct($unixText){$this->target=$unixText; }
        function write($txt){$this->target->write($txt);}
        function newLine(){$this->target->lf();}
        }

        class MSWindowsWriter implements Writer{
        private $target;
    
        public function __construct($winText){$this->target=$winText;   }
        function write($txt){$this->target->write($txt);}
        function newLine(){$this->target->crlf();}
        }
        //example of use
        $writer=NULL;
        if($isUnix){$writer= new UnixWriter(new UnixText());}
        else {$writer= new MSWindowsWriter(new MSWindowsText());}
        $writer->write('First Line');
        $writer->newLine();
        $writer->write('Second Line');
        ```

标签: design-patterns

解决方案


我终于得到了回应,以防它对其他人有帮助。在这种情况下使用的设计模式是适配器。谢谢


推荐阅读