浅谈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函数与传递参数实例分析

    下面就为您详细介绍“php函数与传递参数实例分析”的完整攻略。 php函数与传递参数的概念 首先了解一下,函数是一段可以重复调用的代码,PHP函数是我们自己定义封装了某些功能的代码块。为了提高代码的复用性和代码结构的清晰,PHP函数通常会封装一些具有相同、复杂功能的代码片段供其他地方调用,并且在调用函数过程中,可以传递相关参数来满足特定的使用或要求。 php…

    PHP 2023年5月27日
    00
  • element-ui 的el-button组件中添加自定义颜色和图标的实现方法

    Element UI 是一个基于 Vue.js 的桌面端组件库,提供了丰富的 UI 组件,包括按钮组件 el-button。在实际开发中,为了满足需求,我们可能需要对 el-button 组件进行自定义,比如添加自定义颜色和图标。本文就来详细讲解如何实现这一功能。 添加自定义颜色 我们可以通过为 el-button 组件添加 class 属性,再在 CSS …

    PHP 2023年5月30日
    00
  • PHP中的排序函数sort、asort、rsort、krsort、ksort区别分析

    当需要对PHP中的数组进行排序时,可以使用PHP提供的一系列排序函数。这里我们讲解PHP中的排序函数sort、asort、rsort、krsort、ksort的区别。 sort sort函数可以按照数组的键值进行升序排序,也可以进行降序排序。sort函数无法保留数组原有的键值,并且会重排索引值。 语法: sort($array, $sort_flags); …

    PHP 2023年5月26日
    00
  • 浅谈PHP设计模式的注册树模式

    简介: 注册树模式,属于结构型的设计模式。一种很简单的设计模式 适用场景: 类似IOC。写一个庞大的类库的时候,为了方便各种资源的归纳,可以统一放到一棵树上。 优点: 把一个个游兵散将一样的对象进行统一管理。 另外可以根据项目的业务场景自定义层级。 缺点: 增加项目的复杂性。 纯粹的注册树写法,缺少单例模式的有点,可能存在重复创建对象的可能,需要做额外的验证…

    PHP 2023年4月18日
    00
  • 微信小程序码如何生成 微信小程序码生成方法攻略教程大全

    微信小程序码如何生成:攻略教程大全 微信小程序码是一种将小程序主页或特定页面整合到一张二维码中的方式。这种二维码能够通过扫描的方式访问你的小程序,非常便于推广和分享。 下面我们将详细介绍如何生成微信小程序码,并提供两条示例说明。 生成微信小程序码的方法 在生成小程序码之前,需要先确定你要生成哪一种类型的小程序码。微信小程序官方提供了三种小程序码: 通过小程序…

    PHP 2023年5月23日
    00
  • 微博短链接算法php版本实现代码

    这是一篇关于实现微博短链接算法的 PHP 版本攻略,主要内容包括算法原理的讲解和 PHP 实现代码的分享。 什么是微博短链接算法 在微博等社交媒体平台中,我们经常会遇到那些类似于「t.cn/xxxxx」的短链接。这样的短链接带来了更好的用户体验,不仅可以节省字符数,而且可以更好地避免 URL 泄露的风险。微博短链接算法就是一种针对长链接生成短链接的算法。 微…

    PHP 2023年5月30日
    00
  • PhpStorm配置debug环境的详细过程

    下面是“PhpStorm配置debug环境的详细过程”的完整使用攻略,包括问题原因、解决方法和两个示例说明。 问题原因 在使用PhpStorm进行开发时,需要配置debug环境,便在调试代码时能够时查看变量值和代码执行情况。如果没有正确配置debug环境,将无法进行有效的调试。 解决方法 以下是配置Storm debug环境的方法: 配置Xdebug 首先,…

    PHP 2023年5月12日
    00
  • PHP实现懒加载的方法

    下面是详细讲解“PHP实现懒加载的方法”的完整攻略: 什么是懒加载? 懒加载也叫延迟加载,指的是在需要使用某些资源时才加载,而不是一次性加载所有资源。这种方法可以提高网站或应用的性能和响应速度。 PHP实现懒加载的方法 方法一:使用SplAutoloadRegister函数 使用 SplAutoloadRegister 函数可以实现懒加载。通过在类的加载过程…

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