Ладно, продолжу свою старую традицию задавания глупых вопросов.
один молодой и наивный разраб, преисполненный знаниями ООП, взял и сделал иерархию контроллеров. Вывел в абстрактный класс-контроллер все обшие методы, и отнаследовал от него несколько других контроллеров, переписывая методы или добавляя новые. и выглядит задорно.
но я не знаю что и думать. дело в том, что контроллеры - это самый часто меняемый по требованию клиента тип кода. Сегодня кажется, что там есть общие для всех методы (точнее говоря, с общей реализацией) и сигнатура, а завтра может оказаться, что у каждой странице все по-разному должно быть...
ваше мнение?
Ладно, продолжу свою старую традицию задавания глупых вопросов. один молодой и наивный разраб, преисполненный знаниями ООП, взял и сделал иерархию контроллеров. Вывел в абстрактный класс-контроллер все обшие методы, и отнаследовал от него несколько других контроллеров, переписывая методы или добавляя новые. и выглядит задорно. но я не знаю что и думать. дело в том, что контроллеры - это самый [b]часто меняемый по требованию клиента[/b] тип кода. Сегодня кажется, что там есть общие для всех методы (точнее говоря, с общей реализацией) и сигнатура, а завтра может оказаться, что у каждой странице все по-разному должно быть... ваше мнение?
Думаю, что однозначного ответа на этот вопрос нет. В любом случае, всегда найдутся какие-то методы базовые для всех контроллеров, например обработчик ошибок, так что наследование имеет место быть.
Думаю, что однозначного ответа на этот вопрос нет. В любом случае, всегда найдутся какие-то методы базовые для всех контроллеров, например обработчик ошибок, так что наследование имеет место быть.
На моем текушем проекте есть BaseController который часто наследуется - начиналось все красиво и ради высоких целей а в итоге закончилось как всегда - все превратилось в кастыли и я уже давно его перестал использовать. В этот контроллер вынесли враперы для dml операций, сделали враппер для result (все данные оборачиваются в этот врапепр и он передается на страницу для дальнейшегно использования) - короче один геморрой. Все равно все эти универсальные методы без предварительной обработки данных нельзя использовать - в итоге кода еще больше в контроллерах + нихрена не понятно что делается внутри этих базовых методов - их постоянно меняли из-за чего ломалось все в непредсказуемых местах.
На моем текушем проекте есть BaseController который часто наследуется - начиналось все красиво и ради высоких целей а в итоге закончилось как всегда - все превратилось в кастыли и я уже давно его перестал использовать. В этот контроллер вынесли враперы для dml операций, сделали враппер для result (все данные оборачиваются в этот врапепр и он передается на страницу для дальнейшегно использования) - короче один геморрой. Все равно все эти универсальные методы без предварительной обработки данных нельзя использовать - в итоге кода еще больше в контроллерах + нихрена не понятно что делается внутри этих базовых методов - их постоянно меняли из-за чего ломалось все в непредсказуемых местах.
Потому что нехрен пихать все в один класс.
У меня есть класс Core. Его наследуют все. В этом классе есть методы для получения конфигурации пакета. Работа с лицензиями и все. Также есть класс Utils туда вынесены все статические методы.
Потому что нехрен пихать все в один класс. У меня есть класс Core. Его наследуют все. В этом классе есть методы для получения конфигурации пакета. Работа с лицензиями и все. Также есть класс Utils туда вынесены все статические методы.
Абсолютно верно - каждому классу свой код !!!!!!!!!!
[quote="wilder"]Потому что нехрен пихать все в один класс.[/quote] Абсолютно верно - каждому классу свой код !!!!!!!!!! :D
Ну здравствуй, core новый год! через два года обсуждений дошли до самого интересного...
[quote="wilder"]У меня есть класс Core. Его наследуют все.[/quote] Ну здравствуй, core новый год! через два года обсуждений дошли до самого интересного...