外观模式(门面模式)

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

门面模式的优点

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();

php 外观模式,外观模式的作用相关推荐

  1. Java设计模式(装饰者模式-组合模式-外观模式-享元模式)

    Java设计模式Ⅳ 1.装饰者模式 1.1 装饰者模式概述 1.2 代码理解 2.组合模式 2.1 组合模式概述 2.2 代码理解 3.外观模式 3.1 外观模式概述 3.2 代码理解 4.享元模式 ...

  2. C++设计模式 | 四种结构型模式——代理模式、外观模式、适配器模式、装饰模式...

    结构型模式:让类和类进行组合,获得更大的结构. 代理模式 代理模式的定义: 为其他对象提供一种代理以控制对这个对象的访问.在某些情况下,一个对象不适合或者不能直接引用另一个对象,而代理对象可以在客户端 ...

  3. 外观模式 门面模式 Facade 结构型 设计模式(十三)

    外观模式(FACADE) 又称为门面模式 意图 为子系统中的一组接口提供一个一致的界面 Facade模式定义了一个高层接口,这一接口使得这一子系统更加易于使用. 意图解析 随着项目的持续发展,系统基本 ...

  4. php门面理解,php 门面模式(外观模式)

    header("content-type:text/html;charset=utf-8"); // ==================php 门面模式(外观模式) ====== ...

  5. 《设计模式详解》结构型模式 - 外观模式

    外观模式 5.5 外观模式 5.5.1 概述 5.5.2 结构 5.5.3 案例 5.5.4 使用场景 5.5.5 Tomcat 源码 完整的笔记目录:<设计模式详解>笔记目录,欢迎指点! ...

  6. 设计模式-外观模式(门面模式)

    外观模式(门面模式) 外观模式介绍 定义 通过为多个复杂的子系统提供一个一致的接口,而使这些子系统更加容易被访问的模式. 该模式对外有一个统一接口,外部应用程序不用关心内部子系统的具体细节,这样会大大 ...

  7. java设计模式-- 观察者模式 , 外观模式, 模板方法模式

    观察者模式: 观察者模式比较容易理解: 比如天龙八部里面的王语嫣,每次慕容复打架的时候,每当别人将要使出什么绝招时,会提醒慕容复注意提防. 项目中用到的地方就是注册中中心,zookeeper,当Pro ...

  8. 设计模式(装饰者模式外观模式代理模式)

    目录 装饰者模式 介绍 实现 外观模式 介绍 实现 代理模式 介绍 实现 装饰者模式 装饰器模式(Decorator Pattern)允许向一个现有的对象添加新的功能,同时又不改变其结构.这种类型的设 ...

  9. 电子负载仪上的“CC”“CV”“CR”“CP”这几种模式各有何作用?

    电子负载仪上的"CC""CV""CR""CP"这几种模式各有何作用? 1.CC.Constant Current 恒流模 ...

最新文章

  1. SQL Server插入中文出现乱码??的解决办法
  2. 对mysql优化关注_MySQL优化看这篇就对了
  3. poj 2201 构造
  4. 深度学习(8)TensorFlow基础操作四: 维度变换
  5. stl向量_如何检查C ++ STL中向量中是否存在元素?
  6. 虚拟服务器怎么进去,怎么进入虚拟主机
  7. 《一切皆是映射:代码的本质》哈希算法 (Hash)
  8. 数据加载中...请稍后(js一句代码)
  9. 病毒木马防御与分析实战 1
  10. 手工制作夜光星星的方法
  11. js判断数组是否为空
  12. ps一点等于多少厘米_ps像素和厘米换算(ps100像素等于多少厘米)
  13. java 解压带密码rar_Java解压和压缩带密码的zip文件过程详解
  14. win10系统计算机如何分盘,win10新电脑怎么合理分盘?给win10电脑合理分盘的设置方法...
  15. os系统服务器防火墙怎么关闭,mac防火墙如何关闭
  16. PhysX3.4文档(15) -- Vehicles
  17. Vue 汉字转简拼首字母大写
  18. Arthas-idea
  19. 百分比,千分比,万分比,百分比或百分吕,千分率等
  20. 进程管理(二十二)—CFS调度器

热门文章

  1. matlabnbsp;linprog函数nbsp;线…
  2. 瑞晨环保深交所上市:市值25亿 年营收4亿募资6.8亿
  3. mysql中文占几个char_数据库中一个汉字占几个字符?
  4. Java基础编程作业3
  5. [译]本地排名因素研究(系列)之一 ---Google places(谷歌地方信息)优化
  6. vue3 style
  7. 国家出手管人工智能AI了
  8. tp5 怎么跳转php页面,tp5页面跳转重定向
  9. 宝塔面板免费版怎样安装-宝塔Linux面板安装教程-详细步骤-命令-干什么用的
  10. 【每日最爱一句】2013.06.23