Search
Write a publication
Pull to refresh
3
0
ivertex @ivertex

User

Send message
Согласен, новичку пожалуй тяжелее понять.
factory(«news»)->do_print(); тута ;) вот как раз у стрелочки ;)
по факту (понятно с учетом того, что передаем мы не константу «news», а заранее неизвестное значение, а то нечестно получается;) мы не знаем динамический тип возвращаемого фабрикой объекта. только статический, в интерфейсе которого есть do_print (я тут рассуждаю со скидками касательно очень не строгой типизации в PHP). так вот вызывая у переопределенный метод do_print в иерархии publications мы получаем полиморфное поведение возвращаемого объекта, т.е. разное поведение в зависимости от динамического типа. Опять же, нет никакой разницы между вашим примером и моим, какая разница возвращать или передавать как аргумент в функцию объект? Может я не совсем понимаю в чем именно вы не согласны? А то обсуждение затянулось?;)
Тут трудно сказать, наверное множество причин. Одна из них — производительность, множество ограничений этих языков связано именно с ней. По поводу того, что ситуация сохранится, хочу, но не уверен. Достаточно оптимистично надеяться, что такое наследие кода будет переписано.
Конечно ;). Единственное для полной ясности нужно добавить:
function factory($class) {
if (...) return new $class();
else return new $class();
}
factory(«news»)->do_print();
По факту он самый и есть ;)
Вы не правильно поняли меня. Те, кто критикуют хорошо ознакомившись это одно (таких здесь меньшенство). Я же говорил, про людей, которые критикуют новое, потому что либо не понимают, либо не хотят разбираться. Это как раз ваш пример про Пастернака ;). Таких людей очень много, более того, такое поведение присуще всем, даже хорошим разработчикам в той или иной мере.
Объективные причины заключается не в моде и рекламе ;). На этих языках реализовано больше всего библиотек и операционные системы. Большинство интерфесов на границе библиотек являются сишными. От сюда вывод (который лично для себя я сделал на практике) рано или поздно решая задачу вы упретесь в лучшем случае в интерфес, а то и в реализацию, которая будет на C/C++.
Повторюсь, у C++ много плюсов и много минусов, спорить на эту тему не буду, мое отношение к этому языку все равно крайне позитивное.
Все опять слилось в языковой холивар. Есть одна концепция, которую я знаю лучше всего. Программист всегда противится и критикует решения, которые не понимает и не хочет в них разбираться. Более того, для людей, которые сменили несколько языков, с каждым новым открывается его понимание и со временем влюбленность в него. А плюсы старых, со временем забываются.
Хороший разработчик — умеющий выбрать язык и среду для РЕШЕНИЯ ЗАДАЧИ. Ключевое слово, не язык, не среда, а именно решение задачи.
Обидно, что C++ очень критикуют, с ненавистью прям. Конечно он не без костылей, но жизнь спасал часто ;). Я люблю любой язык, который помогает мне решать задачи ;).
И еще одно, хорошие или плохие C/C++ знать вам рано или поздно придется, по вполне объективным причинам ;).
Если вы про плюсовые шаблоны, то это статический полиморфизм и не более высокого порядка, а просто другой тип полиморфизма. Что касается PHP, то трудно описывать реализации полиморфизма в терминах языков с более жесткой типизацией ;)
Вопрос как использовать. Согласен, что учиться стройным концепциям ООП на примерах PHP, это научиться не стройным, не концепциям, недоООП))). А вот если начать с языка не столь динамичного, то можно очень удачно воплощать все и в PHP. Более того, конкретно по вебу, на плюсах гораздо сложнее реализации выходят, нет там многого, что очень облегчает жизнь).
Его нужно читать, чтобы эти знания появились;)
Поверьте, это одно и то же. Более того, мой пример именно из жизни этой статьи, плюс показывает, что такое фабрика ;).
В моем случае страница будет выведена как-то так:
pub_factory($_GET['page'])->do_print(); // Тут, для пристающих к мелочам, должен быть еще один отнаследованный класс обрабатывающий неизвестные страницы (сообщение об ошибке или редирект)
В вашем же случае это все делается явно, тогда вообще не понятно для чего foo():
switch ($_GET['page'])
{
case 'news': $pub = new news();

}
foo($pub);
Если же вы увидели разницу между передачей в функцию полиморфного объекта как аргумента и его возвратом из функции, плохо:(.
Смотрю на комменты, в основном безнадега(((.
Прошу прощения, не все так плохо. Повторюсь:
Для того, чтобы статья стала статьей о полиморфизме, нужно добавить:
function pub_factory($type) {...}
pub_factory(«news»)->do_print();
Ну или еще как либо обозначить полиморфное использование этих классов.
Для того, чтобы статья стала статьей о полиморфизме, нужно добавить:
function pub_factory($type) {...}
pub_factory(«news»)->do_print();
Ну или еще как либо обозначить полиморфное использование этих классов.
Полное непонимание автором предмета. Жаль молодежь съест, долго переучиваться от таких статей. И даж не в инжекшене дело, это еще мелочи по сравнению с таким полиморфизмом. Бред.
Пока треки физически находятся у вас на сервере проблем с авторскими правами не избежать. Для прослушки права отдельно, для воспроизведения (т.е. копирования и хранения) отдельно. А вообще удачи ;).
Статья сбивает с толку. Полнейшая путаница с XML. Возможно стоило писать статью с упором на описание работы интерфейсов, "магических" методов и стандартной библиотеке, а не "я тут решил сделать свой XML парсер". К тому же, как правильно заметили выше, это не парсер, это обертка к нему. Ошибка по поводу передачи по ссылке объектов очень грубая. Исключения с сообщениями на русском не самое лучшее решение.
Из хорошего: статья очень хорошо оформлена ;)
Опять же, подмножество tagoo.ru
На tagoo вы скорее всего не найдете ни одной ссылки на вконтакте
2

Information

Rating
Does not participate
Location
Россия
Date of birth
Registered
Activity