Урок 21. Паттерны проектирования. MVC. Практика. Часть 2

Дата публикации: 19-03-2020

Чтобы иметь доступ к просмотру всех уроков этого курса, оформите подписку в премиум раздел
Паттерны проектирования

От автора: в прошлом видео было показано как, исходя из запроса пользователя, определить контроллер, метод по его обработке и входящие параметры, если они присутствуют в URL. По сути – это только первая часть полноценного MVC приложения, которая не касается его основных компонентов, но играет важнейшую роль, так как именно она, первой вступает в работу.

Следующий этап – это создание объекта требуемого контроллера и организация работы представлений, что и будет рассмотрено в текущем уроке. При этом Вы увидите, как используя отражения, создать объект интересующего класса, как вызвать на исполнение требуемый метод, как передать параметры в метод контроллера обрабатывающего полученный запрос пользователя и, наконец, как реализовать шаблонизатор для будущих представлений.

lesson

Все уроки курса:

Метки:

Комментарии (4)

  1. Oleg73

    «Класс считается абстрактным, если в классе объявлен хотя бы один абстрактный метод»….class AbstractController не содержит абстрактных методов…

    • Андрей

      Скорее всего, имелось в виду, что если хотя бы один метод в классе объявлен как абстрактный, то и весь класс должен быть объявлен абстрактным, т.е. в обычном классе объявить абстрактный метод не получится.

      • Oleg73

        в class AbstractController все методы имеют реализацию, почему в таком случае мы его делаем абстрактным, а не просто суперклассом, который остальные подклассы расширяют?…подскажите, пожалуйста, Андрей, в чём заключается «абстрактность» class AbstractController ?(данный метод реализуется в уроке 21)….

        • Андрей

          Класс абстрактным, как правило, делают для того, чтобы от него нельзя было создать экземпляр. Например, в цикле уроков по созданию фреймворка классы Controller и Model ядра я объявил абстрактными именно с этой целью. Поскольку это классы ядра, а не приложения, в них только необходимый базовый функционал. При этом оба эти класса имели методы, включающие реализацию. По сути, объявлять эти классы абстрактными, конечно же, не обязательно, можно было бы сделать их обычными классами, но поскольку я не хочу разрешать создавать от них объекты — я сделал их абстрактными.
          Что касается конкретно данного урока, то я его не смотрел, поэтому точно не скажу, возможно, Виктор точнее подскажет, но подозреваю, что цель объявления класса абстрактным заключается именно в этом, — чтобы от класса нельзя было создать объект.

Добавить комментарий