PHP 门面设计模式
2021/4/22 22:26:41
本文主要是介绍PHP 门面设计模式,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
PHP 门面设计模式
概念
提供一个统一的接口去访问多个子系统的多个不同的接口,它为子系统中的一组接口提供一个统一的高层接口。使用子系统更容易使用。
本质:
就是化零为整;引入一个中介类,把各个分散的功能组合成一个整体,只对外暴露一个统一的接口。
实例A
其实门面模式这个思想在现实生活中到处都是,几乎我们使用的每个产品都是由很多小的子系统组合而成,但是每个产品都对外提供了统一的用户接口。
比如我们要在淘宝买东西,我基本上只需要鼠标点一些按钮就完成了,但是实际上网站的后台是很多个子系统一起去完成你购买商品的任务的,比如网站系统,购物车系统,订单系统,用户中心系统,支付系统。这些系统对外通过了统一的接口,让你在网站上点按钮就可以完成买东西的需求。这就是门面模式。我的理解起这个名称的人关注的是由多个接口不统一的子系统对外提供统一的接口,好像形成了一个界面或者门面一样,所以叫门面模式吧。
实例B
商人的水果摊一天的日子如下:
1.水果摊开门
2.取出水果
3.上架水果
4.下架水果
5.放回水果
6.关门
<?php # 水果摊的店门 class Door { //开门 public function open(){echo "开门<br/>";} //关门 public function close(){echo "关门<br/>";} } # 水果摊的货架 class Shelves { //上架水果 public function putOn(){echo "上架水果<br/>";} //下架水果 public function putDown(){echo "下架水果<br/>";} } # 水果 class Fruits { //从保鲜箱中取出水果 public function take(){echo "从保鲜箱中取出水果<br/>";} //将水果放回保险箱中 public function put(){echo "将水果放回保险箱中<br/>";} } //普通方法调用下,水果摊一天的生活是这样的: //营业状态 $door = new Door(); $door->open(); //1.开门 $fruits = new Fruits(); $fruits->take(); //2.取出水果 $shelves = new Shelves(); $shelves->putOn(); //3.上架水果 //打烊状态 $shelves->putDown(); //4.下架水果 $fruits->put(); //5.放回水果 $door->close(); //6.关门 # 门面设计模式 class FruitsLife { protected $door; protected $fruits; protected $shelves; public function __construct() { $this->door = new Door(); $this->fruits = new Fruits(); $this->shelves = new Shelves(); } //营业状态 public function open() { $this->door->open(); //1.开门 $this->fruits->take(); //2.取出水果 $this->shelves->putOn(); //3.上架水果 } //打烊状态 public function close() { $this->shelves->putDown(); //4.下架水果 $this->fruits->put(); //5.放回水果 $this->door->close(); //6.关门 } } #门面设计模式下,水果摊一天的生活是这样的 $fruitsLife = new FruitsLife(); //营业状态 $fruitsLife->open(); //打烊状态 $fruitsLife->close();
这篇关于PHP 门面设计模式的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-09-28怎么把PHP程序打包?-icode9专业技术文章分享
- 2024-09-28怎么用Phar打包PHP程序?-icode9专业技术文章分享
- 2024-09-13手动在github上下载的mfpt包,怎么放到thinkphp5.0框架并正常使用-icode9专业技术文章分享
- 2024-09-05python的<class 'bytearray'>相当于php的哪个数据类型-icode9专业技术文章分享
- 2024-09-05php 导出银行卡号避免科学技术法的方法-icode9专业技术文章分享
- 2024-08-30什么样的php代码质量差被称为垃圾代码-icode9专业技术文章分享
- 2024-08-30用 PHP 调用拼多多的接口以获取订单状态消息的步骤方法和代码示例-icode9专业技术文章分享
- 2024-08-27phpunit单元测试框架的入门和使用方法介绍-icode9专业技术文章分享
- 2024-08-24PHP 中date("w") 周一是多少-icode9专业技术文章分享
- 2024-08-14thinkphp8.0获取域名或主机名方法-icode9专业技术文章分享