<?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);
外观设计模式
精选 转载huang_he_87 博主文章分类:设计模式
提问和评论都可以,用心的回复会被更多人看到
评论
发布评论
相关文章
-
软件设计模式之外观设计模式(Darren)
首先各位博友对Darren的一直支持,令我最高兴的一件事就是我的博
设计模式 生活 数据库 作业 框架 -
外观设计是产品成功的关键 --
每一次当我浏览科技新闻网站时,总会看到又有一款新手机上市了。似乎在前一版手机
产品 手机 产品设计 制造 存储