wiem korzyści z łączenia wewnątrz PHP, ale powiedzmy, że mamy ten następującą sytuacjęWpływ metody łańcuchowym
$Mail = new MailClass("mail")
->SetFrom("X")
->SetTo("X")
->SetSubject("X")
->AddRecipient("X")
->AddRecipient("X")
->AddRecipient("X")
->AddRecipient("X")
->AddRecipient("X")
->AddRecipient("X")
->Send();
Czy są jakieś problemy z powrotem i ponowne użycie przedmiotu kółko kwestie takie jak prędkości lub nieprzestrzeganie najlepszych praktyk
również warto przeczytać o tym, czy nowy do Fluent-Interface: Martin Fowler on Fluent-Interfaces
W pełni rozumiem, że nie mają być zaprogramowane w ten sposób, i może być traktowane tak:
$Mail = new MailClass("mail");
$Mail->AddRecipien(
array(/*.....*/)
);
$Mail->SetFrom("X");
$Mail->SetTo("X");
$Mail->SetSubject("X");
$Mail->Send();
ale powiedzmy, że mam obiekt tak:
$Order = new Order()
->With(22,'TAL')
->With(38,'HPK')->Skippable()
->With(2,'LGV')
->Priority();
nocie the ->With(38,'HPK')->Skippable()
, To jest doskonały przykład Pro do tego typu programowania
Klasy powinny, IMO, potwierdzić swoje argumenty dla instancji i testować/sterować argumentami ich metod. W mojej klasie mailer, is_valid_email jest prywatną metodą wewnątrz klasy. – AutoSponge
"-> Z (38," HPK ") -> Możliwe do pominięcia()" Sytuacja nie stanowi problemu, na przykład w tym scenariuszu/klasie można się dowiedzieć, czy możliwe jest zastosowanie opcji do pominięcia przy dodawaniu. – Hannes
Tak, ale współczynnik czytelności jest większy niż normalne metody kompilacji tego bloku kodu. To jest tylko pro dla czytelności. – RobertPitt