我目前正在重建工作中的一个专业票务系统(主要用于支持远程传感器硬件故障处理...)。无论如何,我想知道在对象的构造函数中进行大量工作流类型的活动是否是一个好主意。
例如,当前有这样的代码:
$ticket = new SupportTicket(
$customer,
$title,
$start_ticket_now,
$mail_customer
);
对象一旦被创建,它会将一行数据插入数据库,发送确认电子邮件给客户,可能会向最近的技术人员发送文本消息等等。
构造函数是否应该触发所有这些工作,或者更像以下的方式?
$ticket = new SupportTicket($customer, $title);
$customer->confirmTicketMailed($ticket);
$helpdesk->alertNewTicket($ticket);
如果有帮助的话,这些对象都是基于ActiveRecord风格的。
我猜这可能是一个主观问题,但你认为最好做什么?