Хабр — не место для сублимации
4 min
Хабралюди, с нами что-то не так. Серьезно. Не замечаете?
Хабр — не жалобная книга, но возмущения и негодования в комментариях сыплются постоянно.
Хабр — для грамотных людей, но всех бесит, когда автору делают замечение по поводу его грамотности.
Мы очень легко провоцируемы, легко раздражаемся на мнения других, на какие-то мелочи, отвлекаясь для чего вообще находимся в этой экосистеме. Позитива от такого общения не остается. Остается обыденность и ощущение что опять кто-то неправ в этих ваших.
Хабр — не жалобная книга, но возмущения и негодования в комментариях сыплются постоянно.
Хабр — для грамотных людей, но всех бесит, когда автору делают замечение по поводу его грамотности.
Мы очень легко провоцируемы, легко раздражаемся на мнения других, на какие-то мелочи, отвлекаясь для чего вообще находимся в этой экосистеме. Позитива от такого общения не остается. Остается обыденность и ощущение что опять кто-то неправ в этих ваших.

В C# есть делегаты. В python есть делегаты. В javascript есть делегаты. В Java есть выполняющую их роль замыкания. А в C++ делегатов нет O_O. Многие талантливые программисты успешно борются с этим недостатком, разрабатывая и используя sigslots, boost::function и другие ценные и нужные библиотеки. К сожалению, большинство реализаций отличаются не только методом использования, но также эпической сложностью применяемой шаблонной магии. Дабы при изучении исходников boost::function волосы не вставали дыбом, я написал эту небольшую статью, показывающую как самым простым и топорным способом реализовать делегат на C++. Описанная реализация является иллюстративной, имеет множество недостатков и ее вряд ли можно применить в серьезных проектах — зато она максимально простая и позволяет ознакомиться с предметной областью не разбирая трехэтажные шаблоны sigslots :).
Большинство литературы посвященной паттернам в ООП (объектно-ориентированном программировании), как правило, объясняются на примерах с самим кодом. И это правильный подход, так как паттерны ООП уже по-умолчанию предназначаются для людей, которые знают что такое программирование и суть ООП. Однако порой требуется заинтересовать этой темой людей, которые в этом совершенно ничего не понимают, например «не-программистов» или же просто начинающих «компьютерщиков». Именно с этой целью и был подготовлен данный материал, который призван объяснить человеку любого уровня знаний, что такое паттерн ООП и, возможно, привлечет в ряды программистов новых «адептов», ведь программирование это на самом деле очень интересно. 



