OberonCore https://forum.oberoncore.ru/ |
|
Связь модулей https://forum.oberoncore.ru/viewtopic.php?f=23&t=135 |
Страница 1 из 1 |
Автор: | Ира [ Среда, 22 Март, 2006 16:35 ] |
Заголовок сообщения: | Связь модулей |
Проблема: есть 2 модуля - модуль А получает данные, а В их расшифровывает. Модуль В импортирует А. Необходимо реализовать взаимдействие между ними таким образом, чтобы модуль А после получения новой порции данных сообщал модулю В об их прибытии, а модуль В их потом забирал из А. Но так как В импортирует А, то сообщение из А в В передать не удается. Можно это обойти? |
Автор: | Сергей Губанов [ Среда, 22 Март, 2006 17:59 ] |
Заголовок сообщения: | Re: Связь модулей |
Ну, существует тысяча способов. Например, пусть модуль B зарегистрирует в модуле A процедуру обратного вызова. Код: MODULE A; VAR onReceive*: PROCEDURE; ... (* получили данные *) IF onReceive # NIL THEN onReceive() END; ... END A. Код: MODULE B;
IMPORT A; ... PROCEDURE OnReceive; BEGIN ... END OnReceive; ... BEGIN A.onReceive := OnReceive END B. Но лучше использовать ООП: создать один модуль, в котором описать абстрактные типы (объекты которых друг с другом тесно взаимодействуют), в других модулях реализовать эти типы, и, наконец, в последнем (главном) модуле эти объекты создать и "сцепить" друг с другом. |
Страница 1 из 1 | Часовой пояс: UTC + 3 часа |
Powered by phpBB® Forum Software © phpBB Group https://www.phpbb.com/ |