外观模式是指通过外观的包装,使应用程序只能看到外观对象,而不会看到具体的细节对象,这样无疑会降低应用程序的复杂度,并且提高了程序的可维护性。
    优点
    1、它对客户屏蔽了子系统组件,因而减少了客户处理的对象的数目并使得子系统使用起来更加方便
    2、实现了子系统与客户之间的松耦合关系
    3、如果应用需要,它并不限制它们使用子系统类。因此可以在系统易用性与能用性之间加以选择
    适用场景
    1、为一些复杂的子系统提供一组接口
    2、提高子系统的独立性
    3、在层次化结构中,可以使用门面模式定义系统的每一层的接口
    代码如下 :

    1. <?php
    2. class webSet{
    3. public function start(){
    4. echo "开启网站....";
    5. }
    6. public function close(){
    7. echo "关闭网站....";
    8. }
    9. }
    10. class blogSet{
    11. public function start(){
    12. echo "开启博客...";
    13. }
    14. public function close(){
    15. echo "关闭博客...";
    16. }
    17. }
    18. class face{ // 外观类,相当于捷径
    19. public $web;
    20. public $blog;
    21. public function __construct(){
    22. $this->web=new webSet();
    23. $this->blog=new blogSet();
    24. }
    25. public function start(){
    26. $this->web->start();
    27. $this->blog->start();
    28. }
    29. public function close(){
    30. $this->web->close();
    31. $this->blog->close();
    32. }
    33. }
    34. $a=new face();
    35. $a->start();
    36. $a->close();