外觀模式

外觀模式定義】 通過在必要的邏輯和方法的集合前創建簡單的外觀接口,隱藏調用對象的複雜性。

外觀設計模式的目的是:控制外部錯綜複雜的關係,並且提供簡單的接口以利用上述組件的能力,關鍵在於將多個互相聯繫的組件組合在簡單可用的接口內。

【類型】:結構型模式

【應用場景】

設計一個User類,裏面有getUser獲取用戶信息接口

在使用getUser這個接口的時候,需要設置用戶的用戶名和用戶年齡

所以在正常情況下,調用getUser接口,需要先實例化User類,然後設置用戶信息,最後才調用getUser方法,這個過程是複雜的,如果用戶信息非常多的話,或者不斷變化的話,調用用戶信息類將是維護成本很大的事情,比如,隨着業務擴展又添加了用戶手機,住址,體重,婚否等信息。

設計了一個UserFacade,裏面有一個靜態方法getUserCall,這個方法可以直接調用getUser函數。

<?php

class User {

protected $name;

protected $age;

public function setUserName($name){

return $this->name = $name;

}

public function setAge($age){

return $this->age = $age;

}

public function getUser(){

echo "名字:".$this->name."年齡:".$this->age;

}

}

//如果不使用外觀模式,調用方法如下:

$user = new User();

$user->setUserName("John");

$user->setUserAge(24);

$user->getUser();

//使用Facade模式

class userFacade{

static function userapi($userinfo){

$user = new User;

$user-> setUserName($userinfo['name']);

$user->setAge($userinfo['age']);

return $user->getUser();

}

}

$userinfo = array('name'=>'Tom','age'=>25);

//只要一個函數就能將調用類簡化

UserFacade::getUserCall($userinfo);


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章