方法链的影响

Rob*_*itt 7 php fluent-interface object chaining

我知道在PHP中链接的好处,但我们可以说有以下情况

$Mail = new MailClass("mail")
        ->SetFrom("X")
        ->SetTo("X")
        ->SetSubject("X")
        ->AddRecipient("X")
        ->AddRecipient("X")
        ->AddRecipient("X")
        ->AddRecipient("X")
        ->AddRecipient("X")
        ->AddRecipient("X")
        ->Send();
Run Code Online (Sandbox Code Playgroud)

返回和重复使用对象是否存在任何问题,如速度或未遵循最佳实践等问题

如果您是Fluent-Interface的新手:Fluent-Interfaces上的Martin Fowler,也可以很好地阅读此内容

我完全理解,它不具备进行编程这种方式,能够像这样被处理:

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

但是让我说我​​有一个像这样的对象:

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

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

Han*_*nes 5

如果你必须验证Something,我认为在AddRecipient方法本身验证它更有意义,但Performance应该大致相同.我不知道使用方法链的任何一般缺点.