首页 > 编程语言 >PHP外观模式

PHP外观模式

时间:2023-02-09 11:38:05浏览次数:33  
标签:function 10 外观 php 16 模式 ---- PHP public


阅读目录

  • ​​项目目录结构​​
  • ​​动物接口​​
  • ​​实体鸡工厂​​
  • ​​实体猪工厂​​
  • ​​外观类​​
  • ​​运行 php test.php​​

项目目录结构

  • 结构型模式 - php外观模式
  • 把系统中类的调用委托给一个单独的类,对外隐藏了内部的复杂性,很有依赖注入容器的感觉哦
目录: D:\facade


Mode LastWriteTime Length Name
---- ------------- ------ ----
-a---- 2021/9/16 10:19 178 AnimalInterface.php
-a---- 2021/9/16 10:19 708 AnimalMaker.php
-a---- 2021/9/16 10:19 238 Chicken.php
-a---- 2021/9/16 10:19 234 Pig.php
-a---- 2021/9/16 10:19 753 test.php

动物接口

<?php
namespace facade;

# 动物接口
interface AnimalInterface
{
# 生产方法
public function produce();
}

实体鸡工厂

<?php
namespace facade;

# 实体鸡工厂
class Chicken implements AnimalInterface
{
# 生产鸡
public function produce()
{
echo "生产了一只鸡~ \n";
}
}

实体猪工厂

<?php
namespace facade;

# 实体猪工厂
class Pig implements AnimalInterface
{
# 生产猪
public function produce()
{
echo "生产了一只猪~ \n";
}
}

外观类

<?php
namespace facade;

# 外观类
class AnimalMaker
{
private $_chicken; # 鸡实工厂例 * @var object

private $_pig; # 猪实工厂例 * @var object

# 构造函数
public function __construct()
{
$this->_chicken = new Chicken();
$this->_pig = new Pig();
}

# 生产方法 * 生产鸡
public function produceChicken()
{
$this->_chicken->produce();
}

# 生产方法 * 生产猪
public function producePig()
{
$this->_pig->produce();
}
}

运行 php test.php

// 注册自加载
spl_autoload_register('autoload');

function autoload($class)
{
require dirname($_SERVER['SCRIPT_FILENAME']).'//..//'.str_replace('\\','/',$class).'.php';
}

/************************************* test *************************************/

use facade\AnimalMaker;

// 初始化外观类
$animalMaker = new AnimalMaker();

// 生产一只猪
$animalMaker->producePig();

// 生产一只鸡
$animalMaker->produceChicken();
生产了一只猪~
生产了一只鸡~


标签:function,10,外观,php,16,模式,----,PHP,public
From: https://blog.51cto.com/u_13571520/6046448

相关文章

  • PHP strpos() 函数查找字符串在另一字符串中第一次出现的位置
    定义和用法strpos()函数查找字符串在另一字符串中第一次出现的位置。注释:strpos()函数对大小写敏感。注释:该函数是二进制安全的。if(strpos('2020Q4','Q')!==false){e......
  • PHP 判断几秒前,几分钟,几小时前最多判断6天前
    $time=strtotime("2021-02-1719:04:14");echoReckonTime($time);functionReckonTime($time){$NowTime=time();if($time>$NowTime){returnfalse;}$T......
  • php适配器模式
    阅读目录​​场景​​​​test.php​​​​AudioPlayer.php​​​​MediaInterface.php​​​​Adapter.php​​​​AdvanceMp4Player.php​​​​MediaAdvanceInterface.ph......
  • PHP里的日期加减方法
    //第一步,假设有一个时间$a='2012-04-2510:10:00';//第二步,获得这个日期的时间戳$a_time=strtotime($a);//第三步,获得加五个月后的时间戳$b_time=strtotime('+5......
  • 获取PHP版本,获取Redis版本,获取MongoDB版本输出已安装扩展
    <?phperror_reporting(E_ALL);ini_set('display_errors',1);echo'<h1style="text-align:center;">欢迎使用DNMP!</h1>';echo'<h2>版本信息-----willem</h2>';echo'<ul>......
  • PHP注册模式
    阅读目录PHP注册模式PHP注册模式注册模式解决全局共享和交换对象,将已创建好的对象,挂在全局可以使用的数组上,在需要使用的时候,直接从该数组上获取该类的实现即可......
  • brew 安装 nginx 配合PHP工作
    1.前言环境介绍:macbookprom12020本文记录使用brew安装nginx配合PHP工作2.安装PHP#查看有哪些PHP版本可以安装brewsearchphp#安装php7.2brewinstall......
  • 使用iis设置网站php版本为7.3
    内容:使用iis设置网站php版本为7.3这张图是多少人的噩梦 早期的宝塔版本没办法在线升级,php版本只能到7.1 默认就没有7.2以上版本 怎么办?可以在iis设置第一步: ......
  • 以 standalone 模式启动 Aapche Pulsar
    以standalone模式启动AapchePulsarstandalone模式常用于开发测试阶段,请勿在生产环境使用。目录以standalone模式启动AapchePulsar常见问题内存小于4GB,导致无......
  • 7、install_mysql_httpd_php_wordpress
    #!/bin/bash##********************************************************************#Author: zikang#QQ: [email protected]#Date: 2021-03-03......