Эффекты объединения методов

Я знаю преимущества цепочки в PHP, но, допустим, у нас есть следующая ситуация

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

Есть ли проблемы с возвратом и повторным использованием объект снова и снова, такие проблемы, как скорость или несоблюдение передовых практик

Также рекомендуется прочитать это, если вы новичок в Fluent-Interface: Мартин Фаулер о Fluent-интерфейсах

Я полностью понимаю, что не требует программирования таким образом, и с ним можно работать так:

$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 для этого типа программирования

7
задан RobertPitt 29 September 2010 в 13:26
поделиться