程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 網頁編程 >> PHP編程 >> 關於PHP編程 >> PHP設計模式系列 - 外觀模式

PHP設計模式系列 - 外觀模式

編輯:關於PHP編程

外觀模式
通過在必需的邏輯和方法的集合前創建簡單的外觀接口,外觀設計模式隱藏了調用對象的復雜性。
外觀設計模式和建造者模式非常相似,建造者模式一般是簡化對象的調用的復雜性,外觀模式一般是簡化含有很多邏輯步驟和方法調用的復雜性。
應用場景
設計一個User類,裡面有getUser獲取用戶信息接口
在使用getUser這個接口的時候,需要設置用戶的用戶名和用戶年齡
所以在正常情況下,調用getUser接口,需要先實例化User類,然後設置用戶信息,最後才調用getUser方法,這個過程是復雜的,如果用戶信息非常多的話,或者不斷變化的話,調用用戶信息類將是維護成本很大的事情,比如,隨著業務擴展又添加了用戶手機,住址,體重,婚否等信息。
設計了一個UserFacade,裡面有一個靜態方法getUserCall,這個方法可以直接調用getUser函數。
代碼:getUser類
[php]
<?php 
//外觀模式,通過在必須的邏輯和方法的集合前創建簡單的外觀接口,外觀設計模式隱藏了來自調用對象的復雜性 
class User { 
     
    protected $userName; 
    protected $userAge; 
     
    public function setUserName($userName) { 
        return $this->userName = $userName; 
    } 
     
    public function setUserAge($userAge) { 
        return $this->userAge = $userAge; 
    } 
     
    public function getUser() { 
        echo '用戶姓名:' . $this->userName . '; 用戶年齡:' . $this->userAge; 
    } 
     

代碼:UserFacade 用戶類外觀接口,一個getUserCall接口
[php]  www.2cto.com
//創建一個User 類調用接口,簡化獲取用戶getUser方法的調用 
class UserFacade { 
    public static function getUserCall($userInfo) { 
        $User = new User; 
        $User->setUserName($userInfo['username']); 
        $User->setUserAge($userInfo['userAge']); 
        return $User->getUser(); 
    } 

$userInfo = array('username' => 'initphp', 'userAge' => 12); 
UserFacade::getUserCall($userInfo); //只要一個函數就能將調用類簡化 

 作者:initphp

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved