浅谈PHP设计模式的代理模式

yizhihongxing

简介:

代理模式,是结构型的设计模式。用于为其它对象提供一种代理以控制对这个对象的访问。
目标对象可以是远程的对象、创建开销大的对象或需要安全控制的对象,并且可以在不改变目标对象的情况下添加一些额外的功能。

适用场景:

  1. 调用端不想或不能直接调用的对象。
  2. 服务端不想让调用端看到核心实现。

优点:

  1. 服务端与调用端分离,防止服务端代码与调用端直接关联,降低耦合。
  2. 保护目标对象。

缺点:

  1. 增加类的数量,增加代码复杂度。
  2. 额外且非必要的类,会造成资源损耗。

代码

//被代理的抽象接口
interface Mobile {
    public function run();
}

//被代理的内容
class Vivo implements Mobile {
    public function run() {
        echo 'vivo手机正在运行';
    }
}

//代理核心代码
class Proxy {
    private $real_obj;
    public function __construct() {
        $this->real_obj = new Vivo;
    }

    public function run() {
        $this->real_obj->run();
    }
}

//调用端=================================================
(new Proxy())->run();

原文链接:https://www.cnblogs.com/phpphp/p/16871793.html

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:浅谈PHP设计模式的代理模式 - Python技术站

(0)
上一篇 2023年4月18日
下一篇 2023年4月18日

相关文章

  • PHP基于反射机制实现插件的可插拔设计详解

    什么是反射机制? 反射机制是指在运行时动态获取一个类的基本信息和方法列表,并进行操作的机制。在PHP中,可以通过类ReflectionClass、ReflectionMethod等来实现反射。 插件的概念和作用 插件是指一组可独立安装、卸载、升级、配置并能够为原系统添加特定功能和服务的软件模块。在PHP中,通过插件的设计,可以实现系统的可插拔性,扩展系统的功…

    PHP 2023年5月26日
    00
  • PHP flush()与ob_flush()的区别详解

    PHP flush()与ob_flush()的区别详解 在PHP中,使用输出缓冲技术可以将输出的内容暂时存放在内存中,从而方便对输出内容进行操作和控制。其中,flush()函数和ob_flush()函数都用于将缓冲区的内容立即输出。但是,它们具有略微不同的适用场景和效果。本文将详细讲解这两个函数的区别和使用方法。 1. flush()函数的用法和效果 flu…

    PHP 2023年5月26日
    00
  • php笔记之:有规律大文件的读取与写入的分析

    PHP笔记之:有规律大文件的读取与写入的分析 在 PHP 中处理大文件是一件很常见的任务。本篇笔记将介绍如何有效地读取和写入大文件。 读取大文件 当需要读取大文件时,最好不要一次读取整个文件到内存中,而应该分块读取。下面是示例代码,演示了如何分块读取: $handle = fopen(‘large_file.txt’, ‘r’); $buffer_size …

    PHP 2023年5月26日
    00
  • PHP页面间参数传递的四种方法详解

    让我来详细讲解“PHP页面间参数传递的四种方法详解”。 一、背景介绍 在网站开发过程中,经常需要将一个页面中获取到的参数传递到另一个页面中,以便另一个页面进行相应的处理或显示。在PHP中,实现页面间参数传递的方法有多种,本文将详细介绍其中的四种方法。 二、方法一:通过$_GET方法传递参数 在PHP中,$_GET方法用于获取由URL传递过来的参数。具体使用方…

    PHP 2023年5月26日
    00
  • PHP中trim()函数简单使用指南

    接下来我会详细讲解“PHP中trim()函数简单使用指南”的完整攻略。 什么是trim()函数 PHP中的trim()函数是一个用于删除字符串两端空格(或其他字符)的函数。它的语法如下: trim ( string $str [, string $character_mask = " \t\n\r\0\x0B" ] ) : string …

    PHP 2023年5月26日
    00
  • PHP解析目录路径的3个函数总结

    以下是关于“PHP解析目录路径的3个函数总结”的完整攻略: 概述 在PHP中,解析目录路径是非常常见的操作,PHP提供了多种函数来满足不同场景需求。本文总结了3个较常用的函数,分别为basename、dirname和pathinfo。 函数一:basename basename函数用于获取路径中的文件名部分,可以是相对路径或绝对路径。例如: $path = …

    PHP 2023年5月25日
    00
  • php导出生成word的方法

    当我们需要将一份数据导出为Word文档时,我们可以使用PHP的第三方库phpoffice/phpword。下面让我来详细介绍如何利用该库导出生成Word文档的方法。 1. 安装phpoffice/phpword库 首先需要在项目中安装 phpoffice/phpword 库,可以使用Composer进行安装。 composer require phpoffi…

    PHP 2023年5月26日
    00
  • PHP学习一(基础)第1/2页

    为了学习PHP,您可以按照以下步骤进行操作: 1.安装PHP和Web服务器 要开始学习PHP,您需要一个PHP解释器和一个Web服务器。 安装PHP 您可以从PHP官方网站下载最新版的PHP: https://www.php.net/downloads.php ,按照提示完成安装即可。 安装Web服务器 Web服务器是用于在浏览器中运行PHP脚本的。常见的W…

    PHP 2023年5月23日
    00
合作推广
合作推广
分享本页
返回顶部