浅谈PHP设计模式的建造者模式

简介:

建造者模式,又称之为生成器模式,属于创建型的设计模式。将一个复杂对象的构建,与它的表示分离,使得同样的构建过程可以创建不同的表示。

适用场景:

用于创建一些复杂的对象,这些对象内部构建间的建造顺序通常是稳定的(这就表名可以抽离),但对象的外在面临着复杂的变化。

优点:

创建和表象分离

缺点:

如果核心类内部发生变化,建造者也要相应修改
与工厂模式:
比工厂模式多了一道自行处理的工序

代码:

abstract class TestPaper {
    abstract public function BuildPaper();
    abstract public function BuildQuestion();
}

class ChineseExaminationPaper extends TestPaper {
    public function BuildPaper() {
        echo "使用A4纸";
    }

    public function BuildQuestion() {
        echo "语文题";
    }
}

class EnglishExaminationPaper extends TestPaper {
    public function BuildPaper() {
        echo "使用A6纸";
    }

    public function BuildQuestion() {
        echo "英文题";
    }
}



class ExaminationPaper {
    private $examination_paper;
    function __construct($examination_paper) {
        $this->examination_paper = $examination_paper;
    }

    public function create() {
        $this->examination_paper->BuildPaper();
        $this->examination_paper->BuildQuestion();
    }
}


//客户端代码

$thinDirector = new ExaminationPaper(new ChineseExaminationPaper());
$thinDirector->create();

$fatDirector = new ExaminationPaper(new EnglishExaminationPaper());
$fatDirector->create();

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

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

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

相关文章

  • php 数组处理函数extract详解及实例代码

    PHP中,数组是一种非常重要的数据类型,它可以存储大量数据并进行各种操作。PHP内置了许多用于处理数组的函数,其中一个比较有用的函数是extract()。本文将详细讲解extract函数的用法及实例代码。 什么是extract函数 extract是PHP内置的一个数组处理函数,用于将数组中的元素转换为独立的变量。它的原型如下: extract(array $…

    PHP 2023年5月26日
    00
  • ThinkPHP模板输出display用法分析

    ThinkPHP是一个开源的PHP框架,可以极大地提高我们开发的效率。模板输出是ThinkPHP框架重要的一部分,而display是其中的一个重要方法。下面,我们来详细讲解ThinkPHP模板输出display用法。 display方法介绍 public function display($templateFile=”, $charset=”, $con…

    PHP 2023年5月26日
    00
  • php实现的网页版剪刀石头布游戏示例

    这里为大家详细讲解一下 “php实现的网页版剪刀石头布游戏示例” 的完整攻略。 1. 技术选型 在实现网页版剪刀石头布游戏时,我们可以选择使用 PHP 等编程语言与 HTML、CSS 等前端技术相结合,最终达到网页版游戏的效果。 2. 实现步骤 2.1 界面设计 首先,我们需要设计游戏的网页界面。可以将游戏界面分为两个部分,上半部分是游戏状态提示和计分板,下…

    PHP 2023年5月26日
    00
  • 微信小程序新增六大功能 面向个人开发者开放

    微信小程序新增六大功能攻略 近日,微信小程序新增了六大功能,面向个人开发者开放,为小程序开发者带来更多的便利和增值服务。本攻略将详细讲解这六大功能,及其使用方法和注意事项。 1.云开发 JavaScript API 进阶能力 云开发 JavaScript API 是为开发者提供云开发能力的内置库,具有通用性和高度可扩展性。在新增功能中,云开发 JavaScr…

    PHP 2023年5月23日
    00
  • PHP的邮件群发系统phplist配置方法详细总结

    PHP的邮件群发系统phplist配置方法详细总结 1. 安装PHPlist PHPlist是一款开源的邮件群发系统,它可以在Linux、Windows、MacOS等不同的操作系统上运行。首先,您需要执行以下步骤来安装PHPlist: 下载PHPlist的最新版本,并将其上传到您的Web服务器上。 解压缩zip文件。 将解压缩后的文件拷贝到您的网站根目录。 …

    PHP 2023年5月24日
    00
  • 由php中字符offset特征造成的绕过漏洞详解

    作为网站作者,我们非常重视安全问题,尤其是针对漏洞的修复与防范。下面是对于“由php中字符offset特征造成的绕过漏洞”的完整攻略,包含了两条示例说明: 一、漏洞描述 该漏洞的产生原因是PHP在对字符串进行处理的时候,没有进行严格的类型检查,在接收到一个字符串之后,如果对其进行下标访问,PHP会默认将下标转换为整数。于是攻击者可以利用该特性,在某些情况下绕…

    PHP 2023年5月26日
    00
  • PHP中的多行字符串传递给JavaScript的两种方法

    下面是 PHP 中多行字符串传递给 JavaScript 的两种方法的完整攻略: 方法一:使用json_encode函数 json_encode 函数是将 PHP 数组或对象转化为 JSON 格式的函数。通过将多行字符串作为数组元素,先将其转化为 PHP 数组,再将数组使用 json_encode 函数转化为 JSON 格式的字符串,最后将 JSON 字符串…

    PHP 2023年5月26日
    00
  • php中变量及部分适用方法

    下面是详细讲解“php中变量及部分适用方法”的完整攻略。 变量 在PHP中,变量是用于存储值的容器。变量可以是各种数据类型,比如数值、字符串、布尔值等。PHP的变量名是区分大小写的。变量名只能由字母、下划线和数字组成,并且不能以数字开头。 定义变量 在PHP中,变量的定义以$符号开头,后面跟着变量名和赋值操作符=,再跟着变量的值。 示例代码: $name =…

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