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


Цитата
Александр Маджугин написал:
Наследовать - такого не попадалось по правде говоря. Но я в принципе не люблю комплексные компоненты. Это же в комплексном пришлось так делать?
Да, задача редкая очень. Нет, это не комплексный. Грубо говоря, представим, что у вас ЛЮБОЙ компонент на сайте делать всегда точно несколько вещей. Ну к примеру хитро формировать JS-код в зависимости от страницы. Можно обработчиком, к примеру, но тогда этот код плевался бы на любую страницу. Я поступил хитрее - код выплевывает родитель, а пасынки, наследуя его, выполняют и его код (автоматически), и свой родной.

Типа такого:
Код
   public function executeComponent()
   {
      /*
       * код дочернего компонента
       */
      //вызов родителя, внутри родителя подрубается и шаблон _текущего_ компонента
      parent::executeComponent();
   }


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

Как раз в случае ООП вы ничего не "таскаете за собой".

 

 

Источник: https://dev.1c-bitrix.ru/community/forums/messages/forum7/topic74551/message388015/#message388015

Назад в раздел

Подписаться на новые материалы раздела:














CAPTCHA