vertello77
@vertello77
Боже…

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

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

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

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


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

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

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

Войти через центр авторизации
Похожие вопросы