外观模式:
外部与一个子系统的通信必须通过一个统一的外观对象进行,为子系统中的一组接口提供一个一致的界面,Facade模式定义了一个高层接口,这个接口使得这一子系统更加容易使用;外观模式又称为门面模式,它是一种对象结构型模式。
外观模式就是让client客户端以一种简单的方式来调用比较复杂的系统来完成一件事情;目的:
1、为一个复杂子系统提供简单的接口
2、减少客户端和子系统的耦合
<?php
/1**
* 外观模式
* 通过在必须的逻辑和方法的集合前创建简单的外观接口,外观设计模式隐藏了来自调用对象的复杂性
*/
/1**
*
* User类
* @author lzs
*
*/
class User
{
protected $userName;
protected $userAge;
public function setUserName($userName)
{
return $this->userName = $userName;
}
public function setUserAge($userAge)
{
return $this->userAge = $userAge;
}
/1**
* getUser方法
* 获取用户信息
*/
public function getUserInfo()
{
echo '用户姓名:'.$this->userName.'<br />用户年龄:'.$this->userAge;
}
}
/1**
* UserFacade外观模式类,简化获取用户getUserInfo方法的调用
*/
class UserFacade
{
public static function getUser($userInfo)
{
$User = new User();
$User->setUserName($userInfo['username']);
$User->setUserAge($userInfo['userAge']);
return $User->getUserInfo();
}
}
$userInfo = array(
'username' => 'lzs',
'userAge' => 21,
);
//简化调用类
UserFacade::getUser($userInfo);