![]() |
![]() ![]() ![]() ![]() ![]() |
![]() |
OrganizationBoost , ,
Структура организована в пять (5) слоев.
Самый низкий уровень - библиотека кортежей. Знание кортежей вообще не требуется для того, чтобы использовать каркас. Короче говоря, эта небольшая подбиблиотека обеспечивает механизм объединения гетерогенных типов вместе. Это деталь реализации. Тем не менее, сам по себе он довольно полезен и в других приложениях. Более подробное объяснение будет дано позже. Актеры являются основной концепцией рамок. Ленивые функции абстрагируются как акторы, которые на самом деле являются полиморфными функторами. Есть только 2 типа актеров:
Композиты состоят из нуля или более актеров. Каждый актер в композите может быть другим композитом. Примитивы являются атомными единицами и не разлагаются. (ленивые) функции, (ленивые) операторы и (ленивые) утверждения построены поверх композитов. Точнее говоря, ленивая функция (ленивые операторы и высказывания — это всего лишь специализированные формы ленивых функций) имеет два этапа:
Первый этап обрабатывается набором функций генератора, функторов генератора и перегрузок оператора генератора. Это ваши передние концы (с точки зрения клиента). Эти генераторы создают актеры, которые могут передаваться так же, как любой другой указатель функции или объект функтора. Второй этап, фактический вызов функции, может быть вызван или выполнен в любое время, как и любая другая функция. Это бэкэнды (часто конечный вызов никогда не виден клиенту). Биндеры, построенные поверх функций, создают ленивые функции из простых мономорфных (похожих на STL) функторов, указателей функций, указателей функций членов или указателей переменных членов для отложенной оценки (переменные доступны через вызов функций, который возвращает ссылку на данные). Эти связующие устройства построены поверх (ленивых) функций. Архитектура фреймворка полностью ортогональная. Отношения между слоями полностью ацикличны. Нижние слои не зависят и не знают о существовании более высоких слоев. Модули в слое не зависят от других модулей в том же слое. Это означает, например, что клиент может полностью отказаться от связующего, если он ему не нужен; или, возможно, вынуть ленивых операторов и ленивые заявления и просто использовать ленивые функции, что желательно в чистом FP-приложении.
Copyright © 2001-2002 Joel de Guzman Статья Organization раздела может быть полезна для разработчиков на c++ и boost. Материалы статей собраны из открытых источников, владелец сайта не претендует на авторство. Там где авторство установить не удалось, материал подаётся без имени автора. В случае если Вы считаете, что Ваши права нарушены, пожалуйста, свяжитесь с владельцем сайта. :: Главная :: ::
|
|||||||||||||
©KANSoftWare (разработка программного обеспечения, создание программ, создание интерактивных сайтов), 2007 |