The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]



"Выпуск пользовательского окружения Enlightenment 0.24 "
Версия для распечатки Пред. тема | След. тема
Форум Разговоры, обсуждение новостей
Исходное сообщение [ Отслеживать ]
Заметили полезную информацию ? Пожалуйста добавьте в FAQ на WIKI.
. "Выпуск пользовательского окружения Enlightenment 0.24 " +/
Сообщение от Ordu (ok), 18-Май-20, 17:54 
> Вот что пассаж про деревянные столы странный - это да.

Суть в том, что когда ты пишешь обработчик on-click для listitem, то ты ждёшь, что тебе в этот on-click будет передаваться listitem, а не стульчак от унитаза. И ежели даже ты принимаешь Evas_Object*, то ты всё равно ждёшь, что это будет указатель, который можно преобразовать к listitem*. В идеале, стоило бы подключить типизацию языка, и объявлять обработчик, явно указывая среди аргументов listitem*. Или не listitem*, а то, что туда будет передаваться.

> Как бы сам смысл современного ООП-like программирования в том, чтобы выделить в предметной области "хотспоты", в которых бизнес-логика меняется часто, и представить их в архитектуре как точки расширения, в которые можно воткнуть полиморфное поведение.

Если каждая функция регистрирующая коллбек будет использовать свой тип коллбека, то тебе никто не мешает писать что-то в стиле:

register_callback([](auto arg1, auto arg2) { return my_generic_callback((void*)arg1, (void*)arg2) });

В C нет лямбд, но это решается элементарно: можно взять компилятор C++, и писать на "C с лямбдами".

Ответить | Правка | Наверх | Cообщить модератору

Оглавление
Выпуск пользовательского окружения Enlightenment 0.24 , opennews, 18-Май-20, 09:38  [смотреть все]
Форумы | Темы | Пред. тема | След. тема



Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру