作者:LAMP小白 点击:1755 发布日期:2012-10-06 10:28:00 返回列表
在必须的逻辑和方法的集合前创建简单的外观接口,外观设计模式隐藏了来自调用对象的复杂性,用于处理让别人误以为简单的复杂组件
基于外观设计模式的类可能提供执行一个逻辑业务请求的公共接口,为了完成这个单独的业务请求,可能需要执行多个技术逻辑步骤
有意思的地方,其实PHP也可以像C一样限制传入数据类型,如
public function haha(MIO $obj){} //只接受MIO的实例化对象 public function heihei(int $num){} //只接受一个整型
以下为传统的写法
class cd { public $tracks = array(); public $band = ''; public $title = ''; public function __construct($title, $band, $tracks) { $this-mio_gt;title = $title; $this-mio_gt;band = $band; $this-mio_gt;traks = $tracks; } } class CDUpperCase { public static function makeString(CD $cd, $type) { $cd-mio_gt;$type = strtoupper($cd-mio_gt;$type); } public static function makeArray(CD $cd, $type) { $cd-mio_gt;$type = array_map('strtoupper', $cd-mio_gt;$type); } } class CDMakeXML { public static function create(CD $cd) { retrun '成功了~'; } } $title = 'haha'; $band = '3'; $tracks = array('aaa','bbb'); $cd = new cd($title, $band, $stracks); CDUpperCase::makeString($cd, 'title'); CDUpperCase::makeString($cd, 'band'); CDUpperCase::mnakeArray($cd, 'tracks'); echo CDMakeXML::create($cd);
按照外观模式封装后,调用更加傻瓜化了~
class WebServiceFacade { public static function makeXMLCall(CD $cd) { CDUpperCase::makeString($cd, 'title'); CDUpperCase::makeString($cd, 'band'); CDUpperCase::mnakeArray($cd, 'tracks'); return CDMakeXML::create($cd); } }
上一篇:委托模式 下一篇:快递查询API