1. 为子系统种的一组接口提供一个一致的界面,用来访问子系统种的一群接口 又称为门面模式<br />子接口太多,操作类里面一大堆,将一大堆接口封装一下,外部统一调用封装后的接口,<br />比如说,去医院看病,挂号,门诊,化验,取药,好几个地方,需要病人每个都接触一遍,外观模式就是,增加一个接待员,病人直接找接待员就好,接待员负责接触其他科室,![image.png](https://cdn.nlark.com/yuque/0/2021/png/22438777/1635242127836-170a3bb5-98d7-452f-8082-ffe3dce6fea3.png#clientId=u3c0b05b6-70e0-4&from=paste&height=463&id=ud535302d&margin=%5Bobject%20Object%5D&name=image.png&originHeight=463&originWidth=655&originalType=binary&ratio=1&size=70474&status=done&style=none&taskId=uf9512413-db26-4a59-a266-9b70a707143&width=655)
    1. <?php
    2. class SubSystemOne
    3. {
    4. public function MethodOne()
    5. {
    6. echo '子系统方法一';
    7. }
    8. }
    9. class SubSystemTwo
    10. {
    11. public function MethodTwo()
    12. {
    13. echo '子系统方法二';
    14. }
    15. }
    16. class SubSystemThree
    17. {
    18. public function MethodThree()
    19. {
    20. echo '子系统方法三';
    21. }
    22. }
    23. class SubSystemFour
    24. {
    25. public function MethodFour()
    26. {
    27. echo '子系统方法四';
    28. }
    29. }
    30. //外观类
    31. class Facade
    32. {
    33. public $SubSystemOne;
    34. public $SubSystemTwo;
    35. public $SubSystemThree;
    36. public $SubSystemFour;
    37. public function __construct()
    38. {
    39. $this->SubSystemOne = new SubSystemOne();
    40. $this->SubSystemTwo = new SubSystemTwo();
    41. $this->SubSystemThree = new SubSystemThree();
    42. $this->SubSystemFour = new SubSystemFour();
    43. }
    44. public function MethodA()
    45. {
    46. echo '系统A';
    47. $this->SubSystemOne->MethodOne();
    48. $this->SubSystemTwo->MethodTwo();
    49. }
    50. public function MethodB()
    51. {
    52. echo '系统B';
    53. $this->SubSystemThree->MethodThree();
    54. $this->SubSystemFour->MethodFour();
    55. }
    56. }
    57. /**
    58. * 操作类
    59. */
    60. class ClassName
    61. {
    62. public function main()
    63. {
    64. $Facade = new Facade();
    65. $Facade->MethodA();
    66. $Facade->MethodB();
    67. }
    68. }
    69. $name= new ClassName();
    70. $name->main();