vertello77
@vertello77
Боже…

Возможно ли корректировать работу метода в зависимости от объекта?

(Ш)Кодил простую штуку, которая должна показывать/удалять/редачить/создавать записи в БД.
Есть две таблицы, строением похожи, но во внутренней логике отвечают за разное: одна — позиции, вторая — категории.
Вот, понял, что код класса, который работает с позициями почти на 100% идентичен коду класса для категорий, за исключением, разве что, FROM в SQL-запросах и количеством обновляемых/вставляемых данных. То есть, код можно сократить вдвое, а не копировать одно и тоже из класса в класс.

Что хотелось бы видеть:
class Класс() {
	function Метод($объект) {
		if($объект = объект1) :
			инструкции, если метод был вызван объектом1
		elseif($объект = объект2) :
			инструкции, если метод был вызван объектом2
		else :
			инструкции, если метод был вызван любым иным объектом
		endif;
	}
}

$объект1 = new Класс();
$объект2 = new Класс();
$объект3 = new Класс();


Надеюсь, понятно изъяснился.
Насколько это возможно и, что немаловажно, разумно?
  • Вопрос задан
  • 83 просмотра
Пригласить эксперта
Ответы на вопрос 2
@FanatPHP
Чебуратор тега PHP
Вообще-то корректировка метода в зависимости от класса называется наследованием.
Но судя по описанию задачи, она решается тупо зданием имени таблицы как свойства класса.
Ответ написан
@lavren
По уму надо прочитать про патерн Адаптер.

Но если я правильно понял то текущая задача решается проверкой через is_a()
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы
Юздеск Москва
от 120 000 до 180 000 ₽
Директ Кредит Казань
от 70 000 до 120 000 ₽
Bitrix Калининград
от 100 000 до 250 000 ₽
01 дек. 2020, в 23:18
80000 руб./за проект
01 дек. 2020, в 22:41
60000 руб./за проект
01 дек. 2020, в 21:24
500 руб./за проект