Ich baue gerade ein spezialisiertes Ticketsystem bei der Arbeit um (hauptsächlich verwendet, um Leute mit Fehlern in Fernerkundungshardware zu unterstützen ...). Wie auch immer, ich habe mich gefragt, ob es eine gute Idee ist, viele Arten von Workflow-Aktivitäten im Konstruktor eines Objekts auszuführen.Ist die Geschäftslogik in Konstruktoren eine gute Idee?
Zum Beispiel gibt es derzeit so:
$ticket = new SupportTicket(
$customer,
$title,
$start_ticket_now,
$mail_customer
);
sobald das Objekt erstellt wird, wird es eine Zeile in eine Datenbank gestellt, gehen und dem Kunden ein Bestätigungs-E-Mail-Mail, möglicherweise senden eine Textnachricht an den nächsten Techniker, etc.
Sollte ein Konstrukteur aus all dieser Arbeit feuern, oder etwas mehr wie folgt?
$ticket = new SupportTicket($customer, $title);
$customer->confirmTicketMailed($ticket);
$helpdesk->alertNewTicket($ticket);
Wenn es hilft, werden die Objekte alle auf der Basis der Active Stil.
Ich denke, es kann eine Frage der Meinung sein, aber was halten Sie für das Beste?
Sie können dies relevant finden: [Konstruktoren müssen Code-Free] (http: //www.yegor256. com/2015/05/07/ctors-muss-be-code-free.html) – yegor256