OberonCore

Библиотека  Wiki  Форум  BlackBox  Компоненты  Проекты
Текущее время: Пятница, 19 Апрель, 2024 16:25

Часовой пояс: UTC + 3 часа




Начать новую тему Ответить на тему  [ Сообщений: 13 ] 
Автор Сообщение
 Заголовок сообщения: Базовый Object с HandleMsg
СообщениеДобавлено: Суббота, 20 Февраль, 2010 21:22 
Модератор
Аватара пользователя

Зарегистрирован: Понедельник, 14 Ноябрь, 2005 18:39
Сообщения: 9459
Откуда: Россия, Орёл
Ещё прихожу к выводу о целесообразности наличия в Framework-е самого базового типа Object с процедурой HandleMsg. Для расширяемости на все случаи жизни.

Мы на определённом этапе в одном каркасе ввели такой тип, понадобился - и потом себя оправдывает (какие-то общесистемные события через него проходят, и т.п.; любая расширяемость без ломания интерфейсов).

В другой задаче тоже возникает такой тип.

Так что стоит, видимо.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Суббота, 20 Февраль, 2010 22:47 
Аватара пользователя

Зарегистрирован: Пятница, 25 Ноябрь, 2005 12:02
Сообщения: 8500
Откуда: Троицк, Москва
Илья Ермаков писал(а):
Ещё прихожу к выводу о целесообразности наличия в Framework-е самого базового типа Object с процедурой HandleMsg. Для расширяемости на все случаи жизни.

Я бы не стал торопиться, если "на все случаи жизни".


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Суббота, 20 Февраль, 2010 23:01 
Модератор
Аватара пользователя

Зарегистрирован: Понедельник, 14 Ноябрь, 2005 18:39
Сообщения: 9459
Откуда: Россия, Орёл
Вообще, это для решения той проблемы, что обязательно рано или поздно возникают какие-то запросы (события), которые "перпендикулярны" введённым интерфейсам.

(Например, выделение объекту "кванта времени" на его нужды).
Сообщения тут - то, что "доктор прописал".


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Суббота, 20 Февраль, 2010 23:29 
Аватара пользователя

Зарегистрирован: Пятница, 25 Ноябрь, 2005 12:02
Сообщения: 8500
Откуда: Троицк, Москва
Это, конечно, постоянно возникающая штука. Но я бы не спешил.

Разве есть сообщение, которое нужно разослать ВСЕМ объектам в памяти?

Эту темку надо бы в отдельную веточку, что ли.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Суббота, 20 Февраль, 2010 23:31 
Модератор
Аватара пользователя

Зарегистрирован: Понедельник, 14 Ноябрь, 2005 18:39
Сообщения: 9459
Откуда: Россия, Орёл
Да нет, речь ни в коем случае не о какой-то общей шине. Вообще не о механизме, а просто о сигнатуре.

О базовом методе. Который бы обязательно и сразу у всех был.
Берём за самый базовый тип наш Object - и у всех объектов будет HandleMsg. А когда "гром грянет" - вот он, есть. И не придётся голову ломать, на каком частном уровне его вводить, ломая интерфейсы.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Базовый Object с HandleMsg
СообщениеДобавлено: Воскресенье, 21 Февраль, 2010 00:04 
Аватара пользователя

Зарегистрирован: Вторник, 19 Сентябрь, 2006 21:54
Сообщения: 2449
Откуда: Россия, Томск
Может быть, ввести в ANYREC? : )


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Базовый Object с HandleMsg
СообщениеДобавлено: Воскресенье, 21 Февраль, 2010 00:29 
Модератор
Аватара пользователя

Зарегистрирован: Понедельник, 14 Ноябрь, 2005 18:39
Сообщения: 9459
Откуда: Россия, Орёл
Вообще-то, чисто теоретизируя на будущее... Там ему могло быть место. Как и FINALIZE.
HANDLE.
И можно оператор типа HANDLE(obj, msg). А obj.HANDLE - implement-only. (чтоб развязочку между операцией посылки сообщения и самим обработчиком иметь).

Хотя... Нюансы могут быть, так что лучше не в язык.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Базовый Object с HandleMsg
СообщениеДобавлено: Воскресенье, 21 Февраль, 2010 04:39 

Зарегистрирован: Суббота, 26 Ноябрь, 2005 10:37
Сообщения: 875
Откуда: Россия, Владивосток
В случае ББ - только в язык. Потому что иначе весь каркас менять придётся. А тут уж простор. Можно и так:
PROCEDURE (o : obj) HandleMsg1 (VAR msg : MessageType), NEW, HANDLER;
PROCEDURE (o : obj) HandleMsg2 (VAR msg : MessageType2), NEW, HANDLER;
тогда процедуру HANDLE можно будет вообще жёстко заоптимизировать - благо "compiler magic"


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Базовый Object с HandleMsg
СообщениеДобавлено: Воскресенье, 21 Февраль, 2010 11:25 
Аватара пользователя

Зарегистрирован: Пятница, 25 Ноябрь, 2005 12:02
Сообщения: 8500
Откуда: Троицк, Москва
Иван Горячев писал(а):
В случае ББ - только в язык. Потому что иначе весь каркас менять придётся. А тут уж простор. Можно и так:
PROCEDURE (o : obj) HandleMsg1 (VAR msg : MessageType), NEW, HANDLER;
PROCEDURE (o : obj) HandleMsg2 (VAR msg : MessageType2), NEW, HANDLER;
тогда процедуру HANDLE можно будет вообще жёстко заоптимизировать - благо "compiler magic"
А что там оптимизировать?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Базовый Object с HandleMsg
СообщениеДобавлено: Воскресенье, 21 Февраль, 2010 11:48 

Зарегистрирован: Суббота, 26 Ноябрь, 2005 10:37
Сообщения: 875
Откуда: Россия, Владивосток
точно не скажу, естественно, но пару-тройку-десяток команд по сравнению с WITH выиграть наверняка можно. А в стандартном обработчике сообщений это должно быть заметно.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Базовый Object с HandleMsg
СообщениеДобавлено: Воскресенье, 21 Февраль, 2010 14:59 
Аватара пользователя

Зарегистрирован: Пятница, 25 Ноябрь, 2005 12:02
Сообщения: 8500
Откуда: Троицк, Москва
Се, соображение:

пока никакой конкретной функциональности, привязанной к этому Object'у, каркас не предоставляет, его добавление не только совершенно бессмысленно, но и вредно по определению.


Последний раз редактировалось Info21 Понедельник, 22 Февраль, 2010 18:11, всего редактировалось 1 раз.

Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Базовый Object с HandleMsg
СообщениеДобавлено: Понедельник, 22 Февраль, 2010 17:26 

Зарегистрирован: Понедельник, 28 Ноябрь, 2005 10:28
Сообщения: 1428
Илья Ермаков писал(а):
Ещё прихожу к выводу о целесообразности наличия в Framework-е самого базового типа Object с процедурой HandleMsg.


Что-то вроде Objects.Object из Oberon System?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Базовый Object с HandleMsg
СообщениеДобавлено: Понедельник, 22 Февраль, 2010 17:39 
Модератор
Аватара пользователя

Зарегистрирован: Понедельник, 14 Ноябрь, 2005 18:39
Сообщения: 9459
Откуда: Россия, Орёл
Не могу судить; слабо знаком с класс. Оберонами.


Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 13 ] 

Часовой пояс: UTC + 3 часа


Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 6


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Вся информация, размещаемая участниками на конференции (тексты сообщений, вложения и пр.) © 2005-2024, участники конференции «OberonCore», если специально не оговорено иное.
Администрация не несет ответственности за мнения, стиль и достоверность высказываний участников, равно как и за безопасность материалов, предоставляемых участниками во вложениях.
Без разрешения участников и ссылки на конференцию «OberonCore» любое воспроизведение и/или копирование высказываний полностью и/или по частям запрещено.
Powered by phpBB® Forum Software © phpBB Group
Русская поддержка phpBB