外觀模式:
外部與一個子系統的通信必須通過一個統一的外觀對象進行,爲子系統中的一組接口提供一個一致的界面,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);