方法链接的影响

2024-03-16

我知道 PHP 中链接的好处,但假设我们有以下情况

$Mail = new MailClass("mail")
        ->SetFrom("X")
        ->SetTo("X")
        ->SetSubject("X")
        ->AddRecipient("X")
        ->AddRecipient("X")
        ->AddRecipient("X")
        ->AddRecipient("X")
        ->AddRecipient("X")
        ->AddRecipient("X")
        ->Send();

一遍又一遍地返回和重用对象是否存在任何问题,例如speed或未能遵循最佳实践

如果您是 Fluent-Interface 的新手,也请阅读以下内容:Martin Fowler 谈 Fluent 接口 http://www.martinfowler.com/bliki/FluentInterface.html

我完全理解事实并非如此have以这种方式编程,并且可以像这样处理:

$Mail = new MailClass("mail");
$Mail->AddRecipien(
    array(/*.....*/)
);
$Mail->SetFrom("X");
$Mail->SetTo("X");
$Mail->SetSubject("X");
$Mail->Send();

但假设我有一个像这样的对象:

$Order = new Order()
         ->With(22,'TAL')
         ->With(38,'HPK')->Skippable()
         ->With(2,'LGV')
         ->Priority();

请注意->With(38,'HPK')->Skippable(),这是此类编程的完美 Pro 示例


如果你必须验证某件事,我认为验证它更有意义在 AddRecipient 方法本身中,但性能应该大致相同。我不知道使用方法链接有任何一般缺点。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

方法链接的影响 的相关文章

随机推荐

  • 嵌套溢出滚动隐藏的溢出不起作用

    我有一个 div 没有被剪切到父级的问题 即使它有overflow hidden 我已经浏览过overflow hiddenstackoverflow 上有问题 但大多数都有问题position或者似乎表明我的代码应该可以工作 这是一个MW
  • 读取 CSV Oracle 存储过程 UTL_FILE 时忽略引号之间的逗号

    示例数据 1 test xy yz dog cat 2 test2 xy fish bear 正如您在上面所看到的 第二列可能会也可能不会用引号引起来 并且作为字符串的一部分 我只是想找到一种方法来忽略引号内的逗号 如果有的话 我正在使用
  • 使用 Django 下载文件

    这可能是一个简单的问题 但我不知何故找不到解决方案 Django 提供了很多有关上传文件的信息 但是如何下载文件 假设我们有一个 HTML 按钮uploads something txt作为一个文件 我尝试过django views sta
  • MongoDB 项目放入数组中

    我有对象数组 嵌套 我想从这些嵌套对象中提取一些元素 并在数组中返回这些字段 下面是我的文档结构 从原始数据中模拟 detailLine name first value lineNumber 1 subLineCode detailLin
  • 为什么 IEnumerable 继承自 IEnumerable?

    这可能是一个老问题 为什么IEnumerable
  • Doxygen 将全局变量声明视为 C++ 中的函数

    当我运行 Doxygen 1 8 15 时 我在日志文件中收到警告 指出并未记录函数的所有参数 warning parameters of member gSwInstallIoMgr are not all documented warn
  • 根据表面包围的 3D 区域将表面分配给区域

    给定三维空间中的一组曲面 我尝试将每个曲面分配给一个区域 该区域引用该组所包围的最小 3D 区域 或者如果不适用则不指定任何区域 我还想确定一个表面是否是两个区域之间的界面 因此 例如 如果我们有 11 个表面 代表两个堆叠在一起的立方体
  • Visual Studio 2013 上缺少“Ado.Net 实体数据模型”

    我已经创建了新的 Web 项目 但找不到 ADO net 实体数据模型来添加它 如何修复或安装 转到 C ProgramData Package Cache 并搜索 EFTools msi 您应该找到两个文件 只需安装最新的一个 大约 96
  • 如何有效地将一组数字拟合到预定分布中

    假设我有一组数字 我想根据预定的分布对它们进行求和以适合队列 一个简单的例子是 如果一组数字的累积量为 100 并且队列 1 2 和 3 的分布分别为 0 2 0 3 0 5 那么我想找到总和为 20 的数字子集 另一个总和为 30 的唯一
  • Active_support/dependency.rb:247 `require': 无法加载此类文件 -- 2.1/pg_ext (LoadError)

    我在 Windows 机器上使用 Ruby 2 1 5 Rails 4 1 6 和 PostgreSQL 9 3 5 当我尝试bundle exec rails server 我最终出现以下错误 DL is deprecated pleas
  • React - 自动完成调用 API

    我正在使用 Material UI 自动完成组件在返回 JSON 的方法中进行 API 调用 这个想法是 当用户输入自动完成组件时 它会调用以查找与字符串匹配的结果 我输入的代码存在的问题是我不知道如何进行 API 调用并在自动完成组件中返
  • 更改 wsdl: 部件名称

    有什么办法可以改变nameWSDL 中的消息部分 我的 WSDL 上有这个
  • 显示 Grails 字段错误

    有谁知道我怎样才能得到fieldError在下面的示例中打印出来 对于每个有错误的项目 我想打印我在 messages properties 文件中定义的自定义错误消息 目前所做的只是打印默认错误代码 item errors allErro
  • 使用 Java 添加 Soap 操作标头

    如何在 java util soap 中添加肥皂操作标头我使用 SoapUI 测试了该服务
  • 我可以在 Sublime Text 2 中保存折叠的代码吗?

    有代码我可以忘记所有看起来不错 但是 关闭文件并重新打开它后 我怎样才能折叠这段我多年都不会编辑的代码 希望如此 并无限期地隐藏它 我觉得缓冲区滚动 https github com SublimeText BufferScroll插件会做
  • EAR包结构

    我正在创建一个带有 1 个 war 文件 appWeb war 是我的 Web 模块 和几个 jar 文件的 EAR 这些 jar 文件不是 EJB 我们选择根据应用程序的逻辑分离创建不同的 jar 文件 例如 model jar 包含所有
  • 遍历 Racket 中的字母表中的字母

    我想编写一个程序 将字母表中的字母作为符号进行迭代 并用它们做一些事情 我希望它大致相当于以下 C 代码 for char letter a letter lt z letter printf The letter is c n lette
  • 使用 SortDescription 时将字符串日期转换为日期

    我的 WPF 应用程序使用XMLDataProvider为其数据 XML 文件有一个
  • 如何从 coredata (实体)ios swift 中删除行

    我是我的应用程序中的核心数据新手 我正在使用 coredata 我只是将数据存储在我的核心数据中 我的实体名称是 FEED 我有一些名称为 title id link desc 的行 所以现在我想根据 id 删除特定行 那么我该怎么做呢 这
  • 方法链接的影响

    我知道 PHP 中链接的好处 但假设我们有以下情况 Mail new MailClass mail gt SetFrom X gt SetTo X gt SetSubject X gt AddRecipient X gt AddRecipi