外观设计模式是什么?

PHP 基础面试题
0
0
分享
推荐答案
展示答案

<?php //通过在必需的逻辑和方法的集合前创建简单的外观接口,外观设计模式隐藏了来自调用对象的复杂性。 class CD{ public $tracks = []; public $band = ''; public $title = ''; public function __construct($title, $band, $tracks){ $this->title = $title; $this->band = $band; $this->tracks = $tracks; } } $title = 'Waste of a Rib'; $band = 'Never Again'; $tracksFromExternalSource = ['What It Means', 'Brrr', 'Goodbye']; $cd = new CD($title, $band, $tracksFromExternalSource); class CDUpperCase{ public static function makeString($cd, $type){ $cd->$type = strtoupper($cd->$type); } public static function makeArray($cd, $type){ $cd->type = array_map('strtoupper', $cd->$type); } } class CDMakeXML{ public static function create($cd){ $doc = new DOMDocument(); $root = $doc->createElement('CD'); $root = $doc->appendChild($root); $title = $doc->createElement('TITLE', $cd->title); $root->appendChild($title); $band = $doc->createElement('BAND', $cd->band); $root->appendChild($band); $tracks = $doc->createElement('TRACKS'); $tracks = $root->appendChild($tracks); foreach($cd->tracks as $track){ $track = $doc->createElement('TRACK', $track); $track = $tracks->appendChild($track); } return $doc->saveXML(); } } //CDUpperCase::makeString($cd, 'title'); //CDUpperCase::makeString($cd, 'band'); //CDUpperCase::makeArray($cd, 'tracks'); //echo CDMakeXML::create($cd); class WebServiceFacade{ public static function makeXMLCall($cd){ CDUpperCase::makeString($cd, 'title'); CDUpperCase::makeString($cd, 'band'); CDUpperCase::makeArray($cd, 'tracks'); $xml = CDMakeXML::create($cd); return $xml; } } echo WebServiceFacade::makeXMLCall($cd);

答案已隐藏