Pull to refresh

Comments 27

и когда к хабру прикрутят нормальный code-вьюер?.. всё таки IT-шный ресурс…
Он есть, просто чукча не читатель и документацию по тегам ему смотреть лениво.
есть тег <source lang=“Язык”></source>
возможные языки: bash, cpp, cs, xml, html, java, javascript, lisp, lua, php, perl, python, ruby, sql, scala, tex
а информация об этом есть рядом с полем для ввода комментария и редактирования поста, которую многие игнорируют, а потом ругаются на парсер
#include <iostream>
void main() 
{ 
    std::cout << "спасибо за информацию :)" << std::endl; 
}
Неплохо было бы его (source) вынести на панель рядом с
Я бы посоветовал познакомиться с Dependency Injection. Особо вникать не стал (попытался разобрать, но захотелось вырвать глаза :-) ), но наблюдается что-то близкое к Dependency Injection.

По поводу С++ дам один совет, в интерфейсе всегда объявляйте виртуальный деструктор. А иначе можно словить неприятные баги.
Дело в том что Dependency Injection использует делегирование.
Еще можно ознакомиться с паттернами Bridge и Adapter, вообще многие паттерны используют делегирование.
Просто объяснение как сделать делегата через C++-интерфейсы. Один из очень многих вариантов использования pure virtual функций.
Делегирование — это паттерн проектирования. Он не особо привязан к языку и может быть достаточно просто реализован практически на всем, начиная с C и заканчивая javascript. В вырожденом случае — это просто передача ссылки / указателя / идентификатора из одного места кода в другое чтобы там могли переданное использовать для выплнения каких-нить нужных работ.

Делегат — это объект или конструкция языка, обладающая рядом свойств — в частности, делегату можно во время выполнения программы указать на функию / метод объекта, после чего вызов делегата как функции приведет к вызову указанной функции / метода. В каких-то языках делегаты встроены в язык на уровне языковых конструкций (C#, Python), в других они вручную реализовываются (что я и показывал в своей статье по C++).

BTW, именно делегатов в objective-c нету :).
Ваш комментарий полностью замещает эту никчемную статью
Да ну? Ну темнемение это я применяю каждый день, это идет и всамой кокоа, и в сторонних разработках. Я просто захотел показать что все это доступно гораздо проще как на обжСи, а не как на Сисярб, а главное все связывание рантайм, без насилия компилятора шаблонами и тд.
Дело в том, что понятие «делегат» в разных фрэймворках и языках может означать разные вещи.
Тоесть objective-C style не всех задач решает?
Не существует универсального решения всех задач, я к этому.
Спокойно, коллега. Все мы когда-то начинали :).
Окей, держу себя в руках :)
void *_
Я иногда и так пишу :))
Ну, есть чем гордиться… Поздравляю.
Вы не только написали дурной и бесполезный пост, но и потратили время людей, которые это прочитали.
Ану читай мой топик — пока я тебе пулю в затылок не всадил, трать время — трать время #?!@%. :P
Сейчас ещё за троллинг накидают в карму… ;)

А вообще, мне кажется, что если уж не вышла первая статья — пиши другую, получше. С учётом указанных ошибок и недочётов. Рейтинг -9 очень показателен (с учётом того, что пять человек плюсануло и 11 добавили в избранное): потенциал есть, надо только стараться. И всё получится.
Спасибо за напутствие, а писать еще буду, мне везет на задачки из разряда «нестандарт».
Пиши, пиши =)
Ещё маленький совет (от бывалого программиста): старайся следить за культурой кода. Не только в статьях, но и в работе. Очень облегчает жизнь.
Sign up to leave a comment.

Articles