x-yuri
Новичок
а зачем тебе иерархия синглтонов? ты же объект создаешь один раз - полиморфизмом тут не воспользуешьсяЕстественно...
а зачем тебе иерархия синглтонов? ты же объект создаешь один раз - полиморфизмом тут не воспользуешьсяЕстественно...
Почему не пользуюсь ?ты же объект создаешь один раз - полиморфизмом тут не воспользуешься
Уменьшая количество копи-паста, уменьшаем проблемы при рефакторинге ?а почему с абстрактными классами легче рефакторить, чем с интерфейсами?
Именно. А что это плохо?и зачем ты в конструктор вынес "создание" объекта? это экономия одной строчки в каждом потомке? то же самое по поводу $instance в классе singleton?
Уже отказался от идеи наследовать синглтоны и статичные методы. Всю стороннюю логику собираюсь подключать к нему с помощью других классов.и кроме того ты собираешься наследоваться от test и переопределять там get_instance?
разумное решение, даже если бы и было late static bindingУже отказался от идеи наследовать синглтоны и статичные методы
abstract class router extends singleton {
protected $args;
protected $root;
protected $req_file_name;
abstract static function get_args();
abstract static function get_root();
abstract static function get_req_file_name();
}
class router_command_line extends router {
}
class router_web_rewrite extends router {
}
Можешь наставить меня на путь истинный? В каком месте у меня промах? В том, что пытаюсь сделать код, для которого не нужны будут "адапторы"? А наследованием я хочу убрать копи-паст?Как я и предполагал, ответ - расширение "служебного" класса разными реализациями для взаимодействия с разными однородными внешними средами с целью приведения объектов к схожему API.
Для этой цели существует понятие "интерфейс"
А вот здесь по-подробнее. Как написать так, что бы всё, что ты перечислил делать без проблем? ) Использывать интерфейсы? Ты к этому ведёшь?)))А твой быдло-фреймверк заманаешься не только рефакторить, но и читать, и тестировать, и использовать где-либо, кроме того проекта, для которого ты "фреймворк" написал
промах в том, что ты наследованием хочешь убрать копи-паст, оно не для того предназначеноМожешь наставить меня на путь истинный? В каком месте у меня промах? В том, что пытаюсь сделать код, для которого не нужны будут "адапторы"? А наследованием я хочу убрать копи-паст?
И вообще - чем плохо вместо интерфейсов использывать абстрактные классы? В чём их минус?
код лучше писать для человека, а не для компьютера. А уже _потом_ смотреть что именно тормозит, как это улучшить и какой выигрыш в скорости ты получишь. И если это действительно важно для твоей конкретной задачи, то тогда стоит оптимизироватьВот скачал я себе два разрекламированных фреймворка...
Окей думаю. Клёво. Заценю скорость. Скачал два "скелета" веб-приложений. В одном и во втором ни чего кроме вывода статического шаблона welcome нет. В итоге и первый и второй фреймворк выполнялся примерно 0.3 сек. Для сравнения - мой быдло-фреймворк выполнял ту же задачу за 0.03-0.09 секунды на этой же машине, и имел примерно такое же апи, для решения этой задачи.
Сразу же оговорюсь - я не ставлю в пример его. Потому как действительно дело с рефакторингом своего кода внутри "фреймворка" у меня чаще всего заканчивается мусорной корзиной...Вот, собственно, и пытаюсь узнать "секрет успеха". Который мне не удалось накопить за 3 года самообучения...
Первое, что пишут неудачники у себя в инфе, это слово "хххххх".Первое что приводят неудачники в своих фреймворках это скорость.
Я с быдлом писюнами не меряюсь.Давай потягаемся с Xcache чтоб кешировался код которого у меня явно больше ?)
Но я ведь не только копи-паст убираю ))) Вообще наследованием я стараюсь решить однотипные задачи для всех потомков) Как бы стандартизировать их...промах в том, что ты наследованием хочешь убрать копи-паст, оно не для того предназначено
Виндой здесь попахивает, батенька, виндой ))код лучше писать для человека, а не для компьютера. А уже _потом_ смотреть что именно тормозит, как это улучшить и какой выигрыш в скорости ты получишь. И если это действительно важно для твоей конкретной задачи, то тогда стоит оптимизировать
Нет, я беру целый фреймворк. Свой и чужой - с, подчёркиваю, практически одинаковым, предоставляемым апи, для решения этой задачи - вывода куска статического шаблона.А главное что ты берешь 1 частичку маленкую отдельно написанную и такуюже частичку из огромной кучи. Конечно твоя будет быстрее, но если затронуть все вместе то тут как обычно у горе фреймворков начинаются проблемы))
В том то и дело. Наследование нужно для того, чтобы определить общий _интерфейс_, через который будет осуществляться работа с потомкамиНо я ведь не только копи-паст убираю ))) Вообще наследованием я стараюсь решить однотипные задачи для всех потомков) Как бы стандартизировать их...
Виндой говоришь? http://en.wikipedia.org/wiki/Unix_philosophy#Raymond:_The_Art_of_Unix_Programming (Rule of Economy)Виндой здесь попахивает, батенька, виндой ))
так ты сделай сайт на этом фреймворке. Посмотри, что именно в нем тормозит, сделай выводы и напиши фреймворк лучше.А вообще - я с тобой согласен - но когда 0.3 сек выполняется вывод какой то задрыпанной странички - по мне - черезчур..
Ога, конечно. А ты у нас умничка. Чмафки тебя фпузо.Кстати - если для вывода простейшей статичной странички у тебя подгружается весь фреймворк полностью - то те слова у тебя в инфе - правда.
Славик, что то я очкую©так ты сделай сайт на этом фреймворке.
Окей. А зачем тогда наследовать класс от класса ? Ведь это не только интерфейс, это ещё и фукнционал...В том то и дело. Наследование нужно для того, чтобы определить общий _интерфейс_, через который будет осуществляться работа с потомками
Слышь, ты с какого района ?Давай ка ты будешь полегче на поворотах, акей?
Логично. Но ведь ни кто не наследует автомобиль от колеса.Есть класс автомобиль и есть класс автомобиль с багажником.
Конечно логично тут наследование. Но вот наследовать класс колесо классу автомобиль - очень мудро)))