Здравствуйте. Учусь писать гибкие программы в соответствии с MVC, SOLID и т.д.
Мне нужен модуль управления задачами. Скажите пожалуйста, правильно ли я составил классы?
Я сделал унаследование от абстрактных классов и следование интерфейсам, что бы в будущем, если появятся новые вида класса Task или TasksManager, то я мог просто создать очередного наследника например AbstractTasksManager и модифицировать или дополнить функционал скрипта не меняя содержимого других классов.
<?php
class Task extends AbstractTask implements TaskInterface
{
}
class TasksManager extends AbstractTasksManager implements TasksManagerInterface
{
}
class AbstractTasksManager implements asksManagerInterface
{
public function find(TaskInterface $task)
{
/** Внедрить метод find в TasksManager правильно?
* Или он должен быть в отдельном классе?
* Метод find использует скоупы Yii2
*/
}
public function create(TaskInterface $task)
{
/** Содержимое метода */
}
public function update(TaskInterface $task)
{
/** Содержимое метода */
}
public function delete(TaskInterface $task)
{
/** Содержимое метода */
}
}