Jump to content

Составные фильтры

(Перенаправлено из «Фильтры композиции» )

Модель композиционных фильтров представляет собой модульное расширение традиционной объектной модели . Он обеспечивает решение широкого круга проблем при создании больших и сложных приложений. В частности, одна из реализаций составных фильтров обеспечивает уровень абстракции для систем передачи сообщений.

Композиционные фильтры работают, изменяя поведение объекта путем манипулирования входящими и исходящими сообщениями. Это делается с помощью входных и выходных фильтров, которые управляются условиями.

История и мотивация

[ редактировать ]

В параллельных и распределенных вычислениях существует множество проблем, таких как разброс и запутанность кода, с которыми было трудно справиться с помощью традиционных объектно -ориентированных моделей. Возникла необходимость разработать новую модель разработки программного обеспечения, учитывающую эти проблемы, что привело к формированию аспектно-ориентированной парадигмы разработки программного обеспечения. Несколько моделей в этой парадигме разрабатывались одновременно, и одна из них — объектная модель композиционных фильтров. Создателями этой модели были Мехмет Аксит и различные аспиранты (Лодевейк Бергманс, Ян Бош, Бедир Текинердоган) и многие магистры наук. студенты из группы TRESE в Университете Твенте в Нидерландах. Он был основан на языке Сина. [1] [2] который был разработан Мехметом Акситом в его докторской диссертации. С тех пор в модели было сделано много усовершенствований. [3] [4]

Конструкция модели композиционных фильтров является расширением конструкции объектной модели ядра . Проект состоит из двух основных частей — ядра (часть реализации) и внешнего уровня (часть интерфейса). В интерфейсной части сделаны расширения для создания модели композиционных фильтров из традиционной объектной модели ядра. [5]

Реализация

[ редактировать ]

Часть реализации или ядро ​​состоит из одного уровня с тремя типами компонентов:

  1. Переменные экземпляра
  2. Методы
  3. Условия

Он также состоит из границы инкапсуляции, которая разделяет уровни реализации и интерфейса.

Переменные экземпляра

[ редактировать ]

Переменные экземпляра — единственные полностью инкапсулированные компоненты ядра. Невозможно получить доступ к этим переменным снаружи. В этой модели переменные экземпляра могут быть любого типа. Примитивные типы данных, такие как целые числа, символы и определяемые пользователем типы данных, такие как классы и перечисления, считаются переменными экземпляра.

Поведение объекта реализуется через его методы. Метод состоит из двух частей — тела метода и объявления метода. Действия, которые объект должен выполнить при вызове, определяются в теле метода. Объявление метода состоит из имени метода, имени и типа параметров и типа возвращаемого значения. Методы не полностью инкапсулированы в ядро ​​и могут использоваться в интерфейсной части.

Начальный метод
[ редактировать ]

Начальный метод — это специальный метод, функция которого аналогична функции конструкторов в других объектно-ориентированных моделях.

Метод, который имеет логический тип возвращаемого значения и пустой список параметров, называется условием. Условия можно использовать для предоставления информации о текущем состоянии объекта. Подобно методам, условия также могут использоваться в части интерфейса, и большая часть использования условий находится за пределами части реализации.

Интерфейсная часть

[ редактировать ]

Интерфейсная часть объектной модели композиционных фильтров состоит из двух основных компонентов – входного и выходного фильтров. Он также содержит два вспомогательных компонента – внутренний и внешний. Более того, к методам и условиям из части реализации также можно получить доступ из интерфейсной части.

Входной и выходной фильтры схожи по конструкции, но различаются по функциональности. Входным фильтрам поручено обрабатывать сообщения, отправляемые объекту, а выходным фильтрам — сообщения, отправляемые объектом. Основная функция фильтров — манипулировать поступающими сообщениями и передавать их на следующий уровень. Фильтры созданы по слоям: сообщение должно пройти через один уровень, чтобы достичь следующего. Каждый слой может состоять из разных фильтров. Каждый фильтр задает определенный шаблон. Шаблон определяет синтаксис, которому должно соответствовать входящее или исходящее сообщение. Когда сообщение приходит, существуют две возможности: сообщение отклоняется фильтром или оно обрабатывается фильтром. Способ отклонения или обработки сообщения зависит от типа фильтра.

Конструкция фильтра
[ редактировать ]

Фильтр спроектирован с использованием набора фильтрующих элементов. Этот набор упорядочен, поскольку каждое сообщение применяется слева направо. Это продолжается до тех пор, пока не произойдет совпадение.

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

Условие — необходимое состояние, в котором должен находиться элемент, чтобы продолжить оценку сообщения.

Соответствующая часть — часть, в которой оцененное сообщение сопоставляется с шаблоном.

Часть замены — часть, в которой указаны значения замены для сообщения, которое было сопоставлено ранее.

Внутренности

[ редактировать ]

Внутренние объекты — это вложенные объекты, которые ссылаются на входные фильтры. Они полностью инкапсулированы в интерфейсную часть. Они создаются автоматически при создании объекта.

Внешние параметры

[ редактировать ]

Внешние объекты — это вложенные объекты, которые ссылаются на выходные фильтры. Они используются для объявления объектов, которые находятся за пределами модели фильтров композиции, но все еще находятся в ее области действия. Примером таких объектов являются глобальные переменные.

язык программирования SINA

[ редактировать ]

Язык программирования SINA — это объектно-ориентированный язык программирования , который был разработан для реализации функций объектной модели композиционных фильтров. Каждая программа SINA представляет собой набор классов, каждый из которых можно разделить на реализацию и интерфейс. Первая реализация SINA была для Smalltalk и работала только в этой среде. [6]

Приложения

[ редактировать ]

Абстрактные типы общения

[ редактировать ]

Объект абстрактного типа связи абстрагирует общение и взаимодействие между объектами. Цели ACT — улучшить возможность повторного использования во всем приложении, скрыть детали реализации в отдельных модулях и снизить сложность моделирования многоуровневых коммуникационных архитектур.

Эксперты [ ВОЗ? ] полагают, что традиционные объектно-ориентированные модели слишком низкоуровневы, поскольку семантику связи между двумя объектами невозможно легко распространить на другие объекты. Поэтому возникла потребность в механизме языка высокого уровня, который можно было бы использовать для моделирования многоуровневых системных архитектур, в которых каждая система на уровне обменивается данными со своими соседними уровнями. Такие механизмы, как наследование, обеспечивают абстракцию только на уровне объекта, но не обеспечивают абстракцию связи между объектами.

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

К заметным преимуществам ACT относятся:

  • ACT можно использовать для перехвата и манипулирования сообщениями, что достигается с помощью входных и выходных фильтров.
  • ACT уменьшают сложность программ, скрывая код взаимодействия (детали связи) в отдельных модулях. Программисты могут применять объектно-ориентированные механизмы для повторного использования этих компонентов. [7]

Модель интеграции базы данных

[ редактировать ]

Композиционные фильтры можно использовать для включения -ориентированный язык таких функций базы данных, как постоянные динамические структуры данных , совместное использование данных, транзакции, множественные представления и ассоциативный доступ в объектно . Базовые объектно-ориентированные механизмы, такие как наследование и делегирование, также предоставляются фильтрами композиции. В модели интеграции базы данных операции с базой данных, такие как объединение, пересечение, исключение и выбор, разрабатываются с использованием фильтров композиции без разрушения объектно-ориентированных механизмов, таких как абстракция данных , инкапсуляция , передача сообщений и наследование . [8]

Другие реализации

[ редактировать ]

Существует множество реализаций композиционных фильтров (включая реализации SmallTalk и Java ). Преимущество существующих реализаций в том, что нет разницы между концептуальной моделью и моделью реализации, что облегчает понимание реализации тех или иных функций. Однако недостатком является то, что эти реализации медленны и требуют больших затрат. Одна реализация на Java, а именно ComposeJ, решила эту проблему, используя подход модификации исходного кода, ориентированный на время компиляции. [9]

См. также

[ редактировать ]
  1. ^ Аксит, Мехмет (23 марта 1989 г.). «О проектировании объектно-ориентированного языка Sina» . Информация об исследованиях Университета Твенте .
  2. ^ Аксит, Мехмет. «Механизмы абстракции данных в Sina/st» . АКМ Пресс. ISSN 0362-1340.
  3. ^ Аксит, Мехмет (1992). «Объектно-ориентированная модель интеграции языка и базы данных: подход с использованием композиционных фильтров» . Европейская конференция ECOOP '92 по объектно-ориентированному программированию . Конспекты лекций по информатике. Том. 615. Шпрингер Верлаг, Берлин. стр. 372–395. дои : 10.1007/BFb0053047 . ISBN  3-540-55668-0 .
  4. ^ Аксит, Мехмет (1992). «Препятствия в объектно-ориентированной разработке программного обеспечения» (PDF) . Уведомления ACM SIGPLAN . 27 (10): 341–358. дои : 10.1145/141937.141965 .
  5. ^ «Объектная модель композиционных фильтров» . trese.cs.utwente.nl . Проверено 18 апреля 2019 г.
  6. ^ Зиринг, Нил. «Словарь языков программирования» . cgibin.erols.com . Проверено 6 февраля 2016 г.
  7. ^ Мехмет Аксит, Кен Вакита, Ян Бош, Лодевийк Бергманс и Акинори Йонезава, «Абстрагирование взаимодействий объектов с помощью композиционных фильтров», Университет Твенте, Токийский университет и Токийский технологический институт
  8. ^ Мехмет Аксит, Лодевийк Бергманс и Синан Вурал, «Объектно-ориентированная модель интеграции языка и базы данных: подход с использованием композиционных фильтров», Факультет компьютерных наук, Университет Твенте
  9. ^ Йоханнес Корнелис Вичман, «ComposeJ - Разработка препроцессора для облегчения использования фильтров композиции в языке Java», Университет Твенте.
[ редактировать ]
Arc.Ask3.Ru: конец переведенного документа.
Arc.Ask3.Ru
Номер скриншота №: f11bb79c5b9e6cb55b71cd749ff78027__1717127220
URL1:https://arc.ask3.ru/arc/aa/f1/27/f11bb79c5b9e6cb55b71cd749ff78027.html
Заголовок, (Title) документа по адресу, URL1:
Composition filters - Wikipedia
Данный printscreen веб страницы (снимок веб страницы, скриншот веб страницы), визуально-программная копия документа расположенного по адресу URL1 и сохраненная в файл, имеет: квалифицированную, усовершенствованную (подтверждены: метки времени, валидность сертификата), открепленную ЭЦП (приложена к данному файлу), что может быть использовано для подтверждения содержания и факта существования документа в этот момент времени. Права на данный скриншот принадлежат администрации Ask3.ru, использование в качестве доказательства только с письменного разрешения правообладателя скриншота. Администрация Ask3.ru не несет ответственности за информацию размещенную на данном скриншоте. Права на прочие зарегистрированные элементы любого права, изображенные на снимках принадлежат их владельцам. Качество перевода предоставляется как есть. Любые претензии, иски не могут быть предъявлены. Если вы не согласны с любым пунктом перечисленным выше, вы не можете использовать данный сайт и информация размещенную на нем (сайте/странице), немедленно покиньте данный сайт. В случае нарушения любого пункта перечисленного выше, штраф 55! (Пятьдесят пять факториал, Денежную единицу (имеющую самостоятельную стоимость) можете выбрать самостоятельно, выплаичвается товарами в течение 7 дней с момента нарушения.)