php 外观模式,外观模式的作用
外观模式(门面模式)
外观模式是指通过外观的包装,使应用程序只能看到外观对象,而不会看到具体的细节对象,这样无疑会降低应用程序的复杂度,并且提高了程序的可维护性。
门面模式的优点
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 外观模式,外观模式的作用相关推荐
- Java设计模式(装饰者模式-组合模式-外观模式-享元模式)
Java设计模式Ⅳ 1.装饰者模式 1.1 装饰者模式概述 1.2 代码理解 2.组合模式 2.1 组合模式概述 2.2 代码理解 3.外观模式 3.1 外观模式概述 3.2 代码理解 4.享元模式 ...
- C++设计模式 | 四种结构型模式——代理模式、外观模式、适配器模式、装饰模式...
结构型模式:让类和类进行组合,获得更大的结构. 代理模式 代理模式的定义: 为其他对象提供一种代理以控制对这个对象的访问.在某些情况下,一个对象不适合或者不能直接引用另一个对象,而代理对象可以在客户端 ...
- 外观模式 门面模式 Facade 结构型 设计模式(十三)
外观模式(FACADE) 又称为门面模式 意图 为子系统中的一组接口提供一个一致的界面 Facade模式定义了一个高层接口,这一接口使得这一子系统更加易于使用. 意图解析 随着项目的持续发展,系统基本 ...
- php门面理解,php 门面模式(外观模式)
header("content-type:text/html;charset=utf-8"); // ==================php 门面模式(外观模式) ====== ...
- 《设计模式详解》结构型模式 - 外观模式
外观模式 5.5 外观模式 5.5.1 概述 5.5.2 结构 5.5.3 案例 5.5.4 使用场景 5.5.5 Tomcat 源码 完整的笔记目录:<设计模式详解>笔记目录,欢迎指点! ...
- 设计模式-外观模式(门面模式)
外观模式(门面模式) 外观模式介绍 定义 通过为多个复杂的子系统提供一个一致的接口,而使这些子系统更加容易被访问的模式. 该模式对外有一个统一接口,外部应用程序不用关心内部子系统的具体细节,这样会大大 ...
- java设计模式-- 观察者模式 , 外观模式, 模板方法模式
观察者模式: 观察者模式比较容易理解: 比如天龙八部里面的王语嫣,每次慕容复打架的时候,每当别人将要使出什么绝招时,会提醒慕容复注意提防. 项目中用到的地方就是注册中中心,zookeeper,当Pro ...
- 设计模式(装饰者模式外观模式代理模式)
目录 装饰者模式 介绍 实现 外观模式 介绍 实现 代理模式 介绍 实现 装饰者模式 装饰器模式(Decorator Pattern)允许向一个现有的对象添加新的功能,同时又不改变其结构.这种类型的设 ...
- 电子负载仪上的“CC”“CV”“CR”“CP”这几种模式各有何作用?
电子负载仪上的"CC""CV""CR""CP"这几种模式各有何作用? 1.CC.Constant Current 恒流模 ...
最新文章
- SQL Server插入中文出现乱码??的解决办法
- 对mysql优化关注_MySQL优化看这篇就对了
- poj 2201 构造
- 深度学习(8)TensorFlow基础操作四: 维度变换
- stl向量_如何检查C ++ STL中向量中是否存在元素?
- 虚拟服务器怎么进去,怎么进入虚拟主机
- 《一切皆是映射:代码的本质》哈希算法 (Hash)
- 数据加载中...请稍后(js一句代码)
- 病毒木马防御与分析实战 1
- 手工制作夜光星星的方法
- js判断数组是否为空
- ps一点等于多少厘米_ps像素和厘米换算(ps100像素等于多少厘米)
- java 解压带密码rar_Java解压和压缩带密码的zip文件过程详解
- win10系统计算机如何分盘,win10新电脑怎么合理分盘?给win10电脑合理分盘的设置方法...
- os系统服务器防火墙怎么关闭,mac防火墙如何关闭
- PhysX3.4文档(15) -- Vehicles
- Vue 汉字转简拼首字母大写
- Arthas-idea
- 百分比,千分比,万分比,百分比或百分吕,千分率等
- 进程管理(二十二)—CFS调度器
热门文章
- matlabnbsp;linprog函数nbsp;线…
- 瑞晨环保深交所上市:市值25亿 年营收4亿募资6.8亿
- mysql中文占几个char_数据库中一个汉字占几个字符?
- Java基础编程作业3
- [译]本地排名因素研究(系列)之一 ---Google places(谷歌地方信息)优化
- vue3 style
- 国家出手管人工智能AI了
- tp5 怎么跳转php页面,tp5页面跳转重定向
- 宝塔面板免费版怎样安装-宝塔Linux面板安装教程-详细步骤-命令-干什么用的
- 【每日最爱一句】2013.06.23