Как правильно наследовать? Ребята, почему не получается наследование? Учусь.
Вот мой простой класс для работы с книгами$obj = new Book();
$post = array('name' => 'Книга1', 'author_id' => 10, 'price' => 1000);
$obj->create($post); //создаем книгу
$post = array('id' => 100, 'name' => 'Книга11', 'author_id' => 11, 'price' => 1111);
$obj->edit($post); //редактируем
$obj->delete($id); //удаляем
$obj->showAll(); //получаем весь массив книг
$obj->showOne(100); //получаем только одну книгу
И один приватный select(array $param) который взаимодействуя с showAll и showOne, меняет запрос к бд.
Со временем появляются новые задачи, функционал (например добавить обложку, добавить аннотацию и тд.)Куда дописывать новый код в конкретном случае? Я могу добавить его в основной класс, или создать наследника. Только вот что тут и от чего наследовать я не въеду. Все методы кроме select-ов так то не связаны друг с другом. Каждый сделает свои проверки, запросы к бд и всё.
Если бы задача стояла вывести какой нибудь иной selectByAuthor(), тогда да, есть смысл наследовать тот же private select. Но тут совершенно нечего наследовать.

21 Авг 2019 в 06:59
220 +1
0
Ответы
1

В данном случае, если у вас все методы кроме select-ов не связаны друг с другом и выполняют свои задачи независимо, то нет необходимости использовать наследование.

Вы можете добавлять новый функционал напрямую в основной класс Book, таким образом, расширяя его функционал без создания дополнительных наследников.

Для примера, если вам нужно добавить функцию для работы с обложкой, вы можете просто добавить новый public метод в класс Book, который будет отвечать за работу с обложкой.

Если же в будущем у вас появятся методы, которые будут иметь общую логику с уже существующими методами, тогда можно будет рассмотреть возможность создания отдельного класса-наследника для этих методов.

Каждая ситуация уникальна, и вам нужно анализировать, какой подход будет наиболее подходящим для вашего конкретного случая.

20 Апр в 13:10
Не можешь разобраться в этой теме?
Обратись за помощью к экспертам
Название заказа не должно быть пустым
Введите email
Бесплатные доработки
Гарантированные бесплатные доработки
Быстрое выполнение
Быстрое выполнение от 2 часов
Проверка работы
Проверка работы на плагиат
Интересные статьи из справочника
Поможем написать учебную работу
Название заказа не должно быть пустым
Введите email
Доверьте свою работу экспертам
Разместите заказ
Наша система отправит ваш заказ на оценку 92 493 авторам
Первые отклики появятся уже в течение 10 минут
Прямой эфир