Доброго времени суток. Я учусь грамотно использовать ООП для гибкости кода, возможности расширения в будущем. Подскажите пожалуйста:
Мой скрипт на основе шаблонов периодически создаёт задачи с помощью метода Tasks::createTask(). У каждой задачи задачи есть подзадачи. Они могут создаваться как сразу при создании основной задачи, так и постепенно добавляться через некоторое время. В каком месте кода их лучше создавать?
1 Вариант:
Создавать подзадачи в методе создания основных задач
class Subtasks
{
public function createSubtasks()
{
// ...
}
}
class Tasks
{
public function createTask($params = array())
{
// Код создания основной задачи...
$newTaskId = '...';
// Создание подзадачи
if ($params['create_subtasks'])
{
$Subtasks = new Subtasks;
$Subtasks->createSubtasks($newTaskId);
}
}
}
2 Вариант
Создавать подзадачи в контроллере
Например так:
$Tasks = new Tasks;
$Subtasks = new Subtasks;
$Tasks->createTask();
$Subtasks->createSubtasks($Tasks->getNewTaskId());
Второй вариант с одной стороны мне кажется более гибким и меньше связывает Tasks и Subtasks, с другой стороны это не очень удобно и если что-то поменяется, то придётся везде переписывать вызов метода создания подзадач.
Как бы сделали вы? Спасибо