php与设计模式-建造者模式

建造者模式:如何像搭乐高一样优雅地构建复杂对象? 带你理解设计模式之建造者模式 阅读详情

建造者模式

将一个复杂对象的构建与它的表示分离,使用同样的构建过程可以创建不同的表示
Demo

//用户类
class UserInfo
{
    protected $_userName;
    protected $_userAge;
    protected $_userHobby;

    public function setUserName($userName)
    {
        $this->_userName = $userName;
    }

    public function setUserAge($userAge)
    {
        $this->_userAge = $userAge;
    }

    public function setUserHobby($userHobby)
    {
        $this->_userHobby = $userHobby;
    }

    public function getPeopleInfo()
    {
        echo  "<br>这个人的名字是:" . $this->_userName . "<br>年龄为:" . $this->_userAge . "<br>  爱好:" . $this->_userHobby;
    }
}

这时候我们要获取一个用户的信息,过程是这样的:
$modelUser = new UserInfo();
$modelUser->setUserName('松涛');
$modelUser->setUserAge('23');
$modelUser->setUserHobby('推理小说');
$modelUser->getPeopleInfo();

这时候创建一个用户建造者类
class UserBuilder
{
    protected $_obj;

    public function __construct()
    {
        $this->_obj = new UserInfo();
    }

    public function builderPeople($userInfo)
    {
        $this->_obj->setUserName($userInfo['userName']);
        $this->_obj->setUserAge($userInfo['userAge']);
        $this->_obj->setUserHobby($userInfo['userHobby']);
    }

    public function getBuliderPeopleInfo()
    {
        $this->_obj->getPeopleInfo();
    }
}
这个是将复杂的创建过程封装在了builderPeople这个方法里面。 接下来是创建对象:
$userArr = array(
    'userName' => '松涛',
    'userAge' => '23',
    'userHobby' => '推理小说');

$modelUserBuilder = new UserBuilder();
$modelUserBuilder->builderPeople($userArr);
$modelUserBuilder->getBuliderPeopleInfo();

请关注我的订阅号

订阅号.png

BACnet协议栈基本对象BI、BO、AI、AO、AV以及device和File对象介绍 阅读详情

相关推荐

CANoe: Panel的上位机控制方法

本文介绍了不同于IG的报文控制方法,实现了Panel面板的控制模式。

Jonsnow3zz的博客 1405

建造者模式(Builder Pattern)- PHP示例

建造者模式(Builder Pattern) 建造者模式(Builder Pattern)使用多个简单的对象一步一步构建成一个复杂的对象。这种类型的设计模式属于创建型模式,它提供了一种创建对象的最佳方式。 一个 Builder 类会一步一步构造最终的对象。该 Builder 类是独立于其他对象的。 意图:将一个复杂的构建与其表示相分离,使得同样的构建过程可以创建不同的表示。 主要解决:主要解决在软件系统中,有时候面临着"一个复杂对象"的创建工作,其通常由各个部分的子对象用一定的算法构成;由于需求的变

patriot_28的博客 204

MOSFET开关损耗全面讲解:从原理到优化策略

深入剖析MOSFET开关损耗的产生机制,结合实际应用场景,讲解如何通过驱动设计和电路优化降低损耗,提升系统效率。重点关注mosfet在高频开关下的表现与热管理。

weixin_29476595的博客 1057

建造者模式 php,PHP设计模式之建造者模式定义与用法简单示例

本文实例讲述了PHP设计模式之建造者模式。分享给大家供大家参考,具体如下:建造者模式:将复杂对象的创建过程和表示进行分离(好吧,我也看不懂什么意思1)。来点我人类能听懂的话:1、在客户端看来需要的仅仅是实例化后的类对象(大多数情况下是需要类的属性)。2、传统方式下当类有了之后,一般直接通过new class()的方式直接进行实例化,然后通过$obj->set1()构建属性1,$obj-&gt...

weixin_42452924的博客 88

CentOS 8下openLDAP服务器搭建避坑指南:从第三方仓库到phpLDAPadmin配置

本文详细介绍了在CentOS 8环境下搭建openLDAP服务器的完整流程,包括利用Symas第三方仓库解决官方仓库不支持的问题,以及phpLDAPadmin的配置技巧。内容涵盖环境准备、核心配置、安全加固、性能优化等关键环节,帮助系统管理员避开常见陷阱,实现高效稳定的LDAP服务器部署。

weixin_30919429的博客 407

DoDAF2.0与UAF1.0与UPDM与IBD与Rhapsody与MagicDraw与SysML

参考:fr=ge_alafr=ge_ala。

计算机辅助工程 1417

builder模式 php,PHP设计模式之建造者模式(Builder)原理与用法案例详解

本文实例讲述了PHP设计模式之建造者模式(Builder)原理与用法。分享给大家供大家参考,具体如下:这个建造者模式,我们也可以称为生成器模式,核心思想是将一个复杂对象的构造与它的表示分离,使同样的构建过程可以创建不同的表示,这样的设计模式被称为建造者模式,简单点来说就是为了消除其它对象复杂的创建过程。例如:汽车,他的发动机引擎有好多品牌,轮胎也有各种材质,内饰更是千奇百怪;鸟,他的头、翅膀以及脚...

weixin_42347422的博客 317

LM1875官方电路图元件作用解释说明以及电路调校

R1是为C1提供充放电回路用的电阻,这是老外工作严谨的地方,其实接好电位器之后直流通路就已经存在了,这个加上只能防止最恶劣情况时也能把C1的电能放掉,尽管只有一点点 C1是输入电容,主要作用是隔离前后级的直流信号,但是这个电容对音质的影响很大,可以换用不同的品牌和容量来部分修改音质和音色 R2提供LM1875正输入端的直流电平控制点,接地就表示在理想情况下Lm1875的输出直流电平是0V;还有一个作用就是确定放大器的交流输入阻抗为电阻值。 R3、R4是反馈电阻,这个电路的放大倍数为R4/R3+1=21倍。.

m0_50862404的博客 1万+

PHP设计模式之建造者模式(Builder Pattern)

一、什么是建造者模式 定义:建造者模式(Builder Pattern)又称生成器模式,是一种构建对象的模式。 1、它可以将一个产品的内部表象与产品的生成过程分割开来,从而可以使一个建造过程生成具有不同的内部表象的产品对象。 2、由于建造零件的过程很复杂,因此,这些零件的建造过程往往被“外部化”到另一个乘坐建造者的对象里,建造者对象返还给客户端的是一个全部零件都建造完毕的产品对象。它将产品的结构和建造过程对客户端隐藏起来。 【释义】 使用生活中的例子来解释建造者...

Albert_____的博客 375

红外图像处理实战:用MATLAB实现时域高通滤波(THPF)去噪(附完整代码)

本文详细介绍了如何利用MATLAB实现时域高通滤波(THPF)算法进行红外图像去噪,包括核心原理、工程实现要点和完整代码示例。通过分析时间窗口选择、空域预处理优化和自适应参数调整等关键点,帮助开发者有效抑制固定图案噪声,适用于无人机载红外监测和安防监控等场景。

weixin_42783709的博客 182

荣耀Magic 6 dToF LiDAR Android阵营全球第一首发

40X30分辨率的BSI SPAD小面阵,帧率达到60帧,搭配多传感器融合算法, 可产生足够的稠密点云,为应用设备提供可靠的距离传感。在手机消费电子方案中,dToF LiDAR技术不仅提升了手机的功能和用户体验,还为手机厂商提供了差异化的竞争优势。随着技术的不断进步和市场的快速发展,我们可以期待未来dToF LiDAR技术将在手机领域发挥更大的作用,为用户带来更多创新和便捷的功能。增强现实(AR)体验:通过dToF LiDAR提供的高精度深度信息,手机可以更准确地放置虚拟物体在现实世界的表面上。

致力于lidar应用开发 19万+

2018-3-13-PHP设计模式【建造者模式】

layout title date author desc in_head post PHP设计模式之建造者模式 2018-03-13 10:00:02 +0800 南丞 设计模式(Design Pattern)是一套被反复使用、多数人知晓的、经过分类编目的、代码设计经验的总结。使用设计模式是为了可重用代码、让代码更...

PFinal社区 178

[QMT量化交易小白入门]-七十六、从tick数据中获取高频交易的量价背离信号

本专栏主要是介绍QMT的基础用法,常见函数,写策略的方法,也会分享一些量化交易的思路,大概会写100篇左右。QMT的相关资料较少,在使用过程中不断的摸索,遇到了一些问题,记录下来和大家一起沟通,共同进步。

木头大左的博客 790

php的设计模式,学习php设计模式 php实现建造者模式

这篇文章主要介绍了php设计模式中的建造者模式,使用php实现建造者模式,感兴趣的小伙伴们可以参考一下建造者模式可以让一个产品的内部表象和和产品的生产过程分离开,从而可以生成具有不同内部表象的产品。一、Builder模式结构图二、Builder模式中主要角色抽象建造者(Builder)角色:定义一个抽象接口,规范产品各个组成成分的建造(即规范具体建造者的方法实现)。其中所规范的方法中必须包括建造方...

weixin_36123285的博客 122

精雕软件(JDpaint) 5.5 绿色版

精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版

VB摄像头监控

该VB模块可对摄像头捕获的画面进行录像等,可在创建的窗口进行控制

设计模式之建造者模式--比工厂更精细的流水线生成

设计模式之建造者模式–比工厂更精细的流水线生成 建造者模式是创建一个稳定流程的复杂对象,隐藏创建的具体流程、过程、细节。 将一个复杂对象的构建与它的表示分离,使得同样的构建过程可以创建不同的表示。 为什么要使用建造者模式 当你需要创建一些复杂的对象,这些对象内部构建间的建造顺序通常是稳定的,但对象内部的构建通常面临着复杂的变化。 建造者分离了构建和表示,他把如何创建隐藏了起来,你只要告诉建造者...

大头讲架构的博客 340

霍尼韦尔SoftMaster使用说明

霍尼韦尔SoftMaster使用说明

PHP设计模式(三)——建造者模式(Builder Pattern)

PHP设计模式(三)——建造者模式(Builder Pattern 建造者模式(Builder Pattern):将一个复杂对象的构建与它的表示分离,使得同样的构建过程可以创建不同的表示。 建造者模式是一步一步创建一个复杂的对象,它允许用户只通过指定复杂对象的类型和内容就可以构建它们,用户不需要知道内部的具体构建细节。建造者模式属于对象创建型模式。根据中文翻译的不同,建造者模式又可以称为生成器模...

努力的Dom先生 217

win10 跳过U8环境检测的IE WebControls.rar

win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。

PHP设计模式

1.单例模式 <?php class man { // 保存例实例在此属性中 private static $_instance; // 构造函数声明为private,防止直接创建对象 private function __construct() { echo '我被实例化了!'; } // 单例方法 pu...

gaokcl的博客 594

建造者模式 php,建造者模式是什么?

建造模式介绍建造模式(Builder Pattern)是对象的创建模式。它可以将一个产品的内部表象与产品的生成过程分割开来,从而可以使一个建造过程生成具有不同的内部表象的产品对象。由于建造零件的过程很复杂,因此,这些零件的建造过程往往被“外部化”到另一个乘坐建造者的对象里,建造者对象返还给客户端的是一个全部零件都建造完毕的产品对象。它将产品的结构和建造过程对客户端隐藏起来。建造模式的四种角色:1 ...

weixin_35680955的博客 94

PHP建造者模式(Builder Pattern)是什么?

建造者模式是一种非常常见的创建型模式,它可以将一个复杂对象的构建过程分解为多个简单对象的构建过程,并且将这些简单对象的构建过程和组装过程分离开来,从而使得同样的构建过程可以创建出不同的产品对象。在实际开发中,我们可以根据具体的需求,选择不同的建造者模式来创建复杂对象。

php-yyds 208

PHP常用设计模式及面向对象设计(笔记和学习)

建造者模式 <?php //一个导演类,传入一个 不同Builder类(具体怎么制造由此决定),来创建一辆车 // 定义Build接口 //不同车辆Build类,根据不同来建造 //和工厂差不多,要稍复杂一点 ...

weixin_42971363的博客 324

Builder: 建造者模式

建造者模式是一种创建型设计模式,它将一个复杂对象的构建过程与它的表示分离,使得同样的构建过程可以创建不同的表示。建造者模式可以将一个复杂对象的构建封装在一个抽象接口中,让具体的实现类来负责具体的细节。这样可以提高代码的可读性和可维护性,也可以避免重复代码和参数过多的问题。

slowlyo的博客 183

精通 PHP 设计模式(一)

你有没有去过 PHP 会议?如果没有,我强烈推荐你去,这是你能接触到活生生的 PHP 社区的最近距离。几周前,我从伦敦飞到密苏里州圣路易斯市,参加了 php[tek](由 php[architect]主办的 PHP 会议)。会议结束后,PHP 社区内有一个小传统,被称为 WurstCon。基本上,数百名 PHP 会议与会者挤进一个小热狗店,举办一个热狗大会,往往让店员完全惊讶。同样,PHP 活动的社区之夜是你可能遇到的最温暖和最接纳的社区场合;PHP 社区无疑是其他开发语言社区所羡慕的。从 PHP 7 开始

龙哥盟 1065

PhpDependencyAnalysis 源码架构深度解析:策略、工厂与建造者模式如何落地

PhpDependencyAnalysis 是一款开源的 PHP 依赖关系图静态代码分析工具,它能把项目的类、接口、Trait 之间的依赖关系解析成可视化图形,并检测循环依赖与分层架构违规。📊 本文将拆解它的源码架构,看看**策略模式、工厂模式与建造者模式**这三个经典设计模式是如何在一个小型 CLI 工具里优雅落地的,适合想通过真实项目学习 PHP 设计模式的开发者。 ## 一、项目速览:从

gitblog_01171的博客 721

php设计模式总结

本文系统梳理了PHP开发中常用的设计模式,将其分为创建型、结构型和行为型三大类。创建型模式(如单例、工厂、建造者)专注于对象创建优化;结构型模式(如适配器、装饰器、代理)处理类与对象组合关系;行为型模式(如观察者、策略、迭代器)规范对象间交互方式。文章详细分析了各模式的核心思想、优缺点及适用场景,并补充了PHP特有的设计模式应用。最后强调设计模式的选择应基于实际业务需求,避免过度设计,以提升代码复用性、扩展性和可维护性为目标。

云游云记 637

PHP设计模式与面向对象设计

设计模式是面向对象编程中经过验证的解决方案,它们提供了可复用的设计经验,帮助开发者构建灵活、可维护的代码架构。在PHP中,通过私有构造函数和静态实例属性实现。观察者模式定义了对象之间的一对多依赖关系,当一个对象状态发生变化时,所有依赖它的对象都会得到通知。责任链模式为请求创建一条接收者链,每个接收者依次处理请求或将其传递给链上的下一个接收者。适配器模式使接口不兼容的类能够协同工作,它将一个类的接口转换成客户期望的另一个接口。建造者模式将一个复杂对象的构建与它的表示分离,使同样的构建过程可以创建不同的表示。

raoxiaoz0425的博客 123

【PHP】PHPer学习之路

命名空间 这是在 PHP 5.3 之后才加入的语言特性,如果你之前学习过 Java 或 C# 的话,那么你应该对命名空间不陌生。简单来说,开发者可以利用命名空间来区分归类不同的代码功能,避免引起变量名或函数名的冲突。 你可以把命名空间理解为文件路径,把变量名理解为文件。当我们在不同路径分别存放了相同的文件时,系统就不会出现冲突。 ...

vcflyfeel的博客 315
上一篇: php与设计模式-门面模式
下一篇: php与设计模式-原型模式
码哥说
博客等级 码龄8年 5645粉丝 172原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

码哥说

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值