Менеджер компонентов - Component Manager

В Apple Macintosh компьютерное программирование, Менеджер компонентов был одним из многих подходов к совместному использованию кода, которые возникли еще доPowerPC Macintosh. Первоначально он был представлен как часть QuickTime, которые остались в составе классическая Mac OS который использовал его наиболее активно.[1]

Технические подробности

А составная часть был фрагментом кода, который предоставлял различные функции, которые могут быть вызваны клиентами. Каждая функция была идентифицирована 16-битным целочисленным идентификационным кодом со знаком. Неположительные коды были зарезервированы для предопределенных функций, которые должны быть поняты всеми компонентами - открытие / закрытие экземпляра компонента, запрос о поддержке функции и т. Д. Значение положительных кодов функций зависело от типа компонента.

А экземпляр компонента был создан открытие компонент. Это вызвало функцию open компонента, чтобы выделить и инициализировать любое необходимое хранилище для экземпляра. Закрытие экземпляра избавляет от этого хранилища и делает недействительными все ссылки на этот экземпляр.

На компоненты и экземпляры компонентов ссылались 32-битные значения, которые не были указатели. Вместо этого они интерпретировались как ключи во внутренних таблицах диспетчера компонентов. Эти ссылки были созданы таким образом, что после того, как они стали недействительными, эти значения вряд ли снова стали действительными в течение длительного времени. Это минимизировало вероятность появления неясных ошибок из-за висящих ссылок.

Компоненты были идентифицированы OSType коды, дающие их тип, подтип и "производитель". Например, типом компонента может быть" компрессор растровых изображений ", подтипы которого могут существовать, среди прочего, для JPEG, H.261, Sorenson и Intel Indeo. Можно было зарегистрировать несколько компонентов с одним и тем же идентификатором. коды, дающие альтернативные реализации одного и того же алгоритма, например, с использованием аппаратного обеспечения и программного обеспечения, компромисса между скоростью и качеством или другими критериями. Приложения могли запрашивать существование таких альтернатив и делать явный выбор между ними или позволять системе выберите значение по умолчанию.

Среди доступных опций компонент мог делегировать части его функций в другой компонент как форма подкласса для повторного использования кода. Также было возможно, чтобы один компонент захватить другой, что означало, что все обращения к захваченному компоненту должны были проходить через захватывающий.

Компоненты Mac OS

В Mac OS скопилось множество типов компонентов:

  • В пределах QuickTime, были кодеки изображений, обработчики мультимедиа, обработчики мультимедийных данных, драйверы цифрового преобразователя видео, импортеры и экспортеры форматов файлов и многие другие.
  • В версии 3.0 Sound Manager перешел на преимущественно компонентную архитектуру: устройства вывода звука были представлены как компоненты, а также были типы компонентов для микширования нескольких каналов, преобразования между различными частотами дискретизации и размерами дискретизации, а также кодирования и декодирования сжатых форматов.
  • AppleScript представила концепцию языков сценариев, реализованных в виде компонентов.
  • ColorSync реализованы различные методы подбора цветов в качестве компонентов.
  • QuickDraw GX «Масштабаторы шрифтов» были средствами визуализации для различных форматов шрифтов.

использованная литература

  1. ^ Вайнштейн, Стивен Б. (2005). Мультимедийный Интернет. Springer. стр.355. ISBN  0-387-23681-3.