外观模式

外观模式

  • 通过在必须的逻辑和方法的集合前创建简单的外观接口,外观设计模式隐藏了来自调用对象的复杂性。
  • 设计一个User类
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    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;
    }

    }
  • 设计用户类的外观接口
    1
    2
    3
    4
    5
    6
    7
    8
    class UserFacade {
    public static function getUserCall($userInfo) {
    $User = new User;
    $User->setUserName($userInfo['username']);
    $User->setUserAge($userInfo['userAge']);
    return $User->getUser();
    }
    }
  • 调用执行代码
    1
    2
    $userInfo = array('username' => 'initphp', 'userAge' => 12);
    UserFacade::getUserCall($userInfo); //只要一个函数就能将调用类简化
  • 输出
    1
    用户姓名:initphp; 用户年龄:12