外观模式的作用

外观模式(门面模式)

外观模式是指通过外观的包装,使应用程序只能看到外观对象,而不会看到具体的细节对象,这样无疑会降低应用程序的复杂度,并且提高了程序的可维护性。

门面模式的优点

1、它对客户屏蔽了子系统组件,因而减少了客户处理的对象的数目并使得子系统使用起来更加方便

2、实现了子系统与客户之间的松耦合关系

3、如果应用需要,它并不限制它们使用子系统类。因此可以在系统易用性与能用性之间加以选择

门面模式适用场景

1、为一些复杂的子系统提供一组接口

2、提高子系统的独立性

3、在层次化结构中,可以使用门面模式定义系统的每一层的接口

比如我们在网站开发中有以下几个功能

关闭和开启网站、关闭开启博客、关闭开启注册3个功能我们可以将他们实现后并包装起来。
`<?php

//关闭和开启网站

class webSet{

public function start(){

echo '开启网站......';

}

public function stop(){

echo '关闭网站......';

}

}

//关闭开启博客

class blogSet{

public function start(){

echo '开启博客......';

}

public function stop(){

echo '关闭博客......';

}

}

//关闭开启注册

class registerSet{

public function start(){

echo '开启注册......';

}

public function stop(){

echo '关闭注册......';

}

}

//门面类

class Facade{

//网站设置对象

private $webSet;

//博客设置对象

private $blogSet;

//注册功能设置对象

private $registerSet;

public function __construct(){

$this->webSet = new webSet();

$this->blogSet = new blogSet();

$this->registerSet = new registerSet();

}

//设置共开关 - 开

public function turnOn(){

$this->webSet->start();

$this->blogSet->start();

$this->registerSet->start();

}

//设置共开关 - 关

public function turnOff(){

$this->webSet->stop();

$this->blogSet->stop();

$this->registerSet->stop();

}

}

//调用

$Facade = new Facade();

$Facade->turnOn();`

posted @ 2022-05-17 01:22  穷帅哥依然纵横一方  阅读(180)  评论(0编辑  收藏  举报