Голые предметы - Naked objects

Голые предметы является архитектурный образец используется в программная инженерия.

Определение

Паттерн обнаженных объектов определяется тремя принципами:

  1. Все бизнес-логика следует инкапсулировать на объекты домена. Этот принцип характерен не только для обнаженных объектов; это твердая приверженность инкапсуляция.
  2. В пользовательский интерфейс должен быть прямым представлением объектов домена со всеми действиями пользователя, состоящими из создания, извлечения или вызова методы по объектам домена. Этот принцип характерен не только для обнаженных объектов: это интерпретация объектно-ориентированный пользовательский интерфейс.

Новаторская особенность паттерна «обнаженный объект» возникает благодаря объединению 1-го и 2-го принципов в 3-й принцип:

  1. Пользовательский интерфейс должен быть полностью автоматически создан из определений объектов домена. Это может быть сделано с использованием нескольких различных технологий, включая генерация исходного кода. На свидание,[когда? ] реализации[который? ] рисунка обнаженных объектов отдали предпочтение технологии отражение.

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

Обнаженные объекты обычно противопоставляются[кем? ] с модель – представление – контроллер шаблон. Однако опубликованная версия тезиса Поусона[1] содержит предисловие Трюгве Реенскауг, который первым сформулировал шаблон модель-представление-контроллер, предполагая, что голые объекты ближе к первоначальному замыслу модель-представление-контроллер (MVC), чем многие последующие интерпретации и реализации.

Преимущества

В тезисе Поусона говорится о четырех преимуществах этого паттерна:

  1. Более быстрый цикл разработки, потому что нужно развивать меньше слоев. В более традиционном дизайне разработчик должен определить и реализовать три или более отдельных уровня: уровень объекта предметной области, уровень представления и сценарии задачи или процесса, которые соединяют их. (Если рисунок обнаженных объектов совмещен с объектно-реляционное отображение или база данных объектов, то можно создать все уровни системы только на основе определений объектов предметной области; однако это не является частью шаблона обнаженных объектов. как таковой.) Диссертация включает в себя тематическое исследование, в котором сравниваются две разные реализации одного и того же приложения: одна основана на традиционной «четырехуровневой» реализации; другой - с использованием обнаженных предметов.
  2. Большая ловкость, ссылаясь на легкость, с которой приложение может быть изменено, чтобы приспособиться к будущим изменениям бизнес-требований. Частично это происходит из-за уменьшения количества проявленных слоев, которые необходимо синхронизировать. Однако также утверждается, что принудительное соответствие 1: 1 между представлением пользователя и моделью предметной области требует более высокого качества объектное моделирование, что, в свою очередь, улучшает маневренность.
  3. Более расширенный стиль пользовательского интерфейса. Это преимущество действительно связано с полученным объектно-ориентированный пользовательский интерфейс (OOUI), а не к обнаженным объектам как таковым, хотя утверждается, что обнаженные объекты значительно упрощают создание и реализацию OOUI.
  4. Более простой анализ требований. Аргумент здесь состоит в том, что с шаблоном «голые объекты» объекты предметной области образуют общий язык между пользователями и разработчиками, и что этот общий язык облегчает процесс обсуждения требований - потому что нет других представлений для обсуждения. В сочетании с более быстрым циклом разработки становится возможным создавать прототипы функциональных приложений в реальном времени.

Практический опыт

В Департамент социальной защиты Компания (DSP) (ранее известная как Департамент по социальным и семейным вопросам) в Ирландии создала набор корпоративных приложений с использованием шаблона «голые объекты». В рамках своей программы модернизации предоставления услуг (SDM) DSP разработала новую корпоративную архитектуру как для удовлетворения запланированных новых бизнес-требований, так и для обеспечения большей гибкости в долгосрочной перспективе. Шаблон «голые объекты» является ключевым элементом архитектуры SDM.[2] В ноябре 2002 года DSP запустила новое приложение для замены существующей системы управления пособиями на детей. Считается, что это первое практическое применение шаблона обнаженных объектов в любом месте. Опыт DSP в создании этого первого приложения, включая реакцию пользователей на радикальный пользовательский интерфейс, подробно задокументирован в тезисе Поусона:[1] и совсем недавно на презентации на QCon London 2011.[3]

Одним из наиболее поразительных аспектов опыта DSP было то, что методика обнаженных объектов позволяла очень активно повторно использовать. Как только объект домена, такой как Клиент, был определен для одного «приложения», его можно было (было) легко адаптировать с минимальными настройками и дополнениями для использования в другом месте. Это говорит о том, что этот подход может стать фаворитом в правительственных кругах, где повторное использование рассматривается как мощный метод разрушения разрозненных систем. Политика «трансформационного правительства» Соединенного Королевства особенно стремится к тому, чтобы повторное использование стало стандартным требованием для новых государственных систем, как при использовании других компонентов правительственной системы, так и при предоставлении новых для использования другими. Это повторное использование часто рассматривается с точки зрения услуг, но объекты могут быть не менее мощным подходом.

Первоначальная «Архитектура обнаженных объектов» DSP была разработана внешним подрядчиком,[4] но впоследствии архитектура была перестроена вокруг Каркас обнаженных объектов который теперь формирует основу для будущей разработки приложений, что подтверждено в тендере на четырехлетнюю программу создания дополнительных приложений с использованием голых объектов.[5]

Критика

Шаблон обнаженных объектов вызвал изрядную критику с момента первой публичной демонстрации идеи на выставке OOPSLA 2001 конференция под знаменем Интригующие технологии. Эта критика обычно сосредоточена на одной из трех основных областей:

  1. Обоснованность стремления инкапсулировать всю бизнес-логику в объекты домена. Аргументы как за, так и против этой идеи можно найти в исследовательской литературе для объектно-ориентированного программирования и предметно-ориентированный дизайн.
  2. Применимость объектно-ориентированных пользовательских интерфейсов.[6]
  3. Удобство использования общих пользовательских интерфейсов.

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

Отношение к другим идеям

Шаблон обнаженных объектов имеет отношение к нескольким другим дисциплинам и / или тенденциям, включая:

Механизмы хранения объектов

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

Гибкая разработка программного обеспечения

Голые объекты совместимы с тенденцией к гибкой методологии разработки во многих отношениях, но особенно с мелкозернистой итеративной разработкой. Опыт DSP (описанный выше), вероятно, был также крупнейшим применением методов гибкой разработки программного обеспечения в рамках организации государственного сектора во всем мире.[7]

Домен-ориентированный дизайн

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

Модельно-управляемая архитектура (MDA)

Хотя голые объекты не соответствуют строгому определению MDA, они преследуют одни и те же цели. Дэн Хейвуд утверждал, что обнаженные предметы - более эффективный подход к достижению этих целей.[9]

Успокаивающие объекты

Стандарт для создания RESTful интерфейс из объектной модели предметной области. Хотя в спецификации Restful Objects не указано, что интерфейс должен быть создан в соответствии с моделью предметной области, такая возможность существует.

Смотрите также

Рекомендации

  1. ^ а б c Поусон, Ричард (июнь 2004 г.). Голые предметы (PDF) (Кандидатская диссертация). Тринити-колледж, Дублинский университет.
  2. ^ Департамент по социальным вопросам и делам семьи - Руководство по функциям и документации Департамента, Веб-сайт DSFA - Свобода информации В архиве 2012-10-19 в Wayback Machine
  3. ^ Пример из практики: крупномасштабный чистый объектно-ориентированный проект в правительстве Ирландии QCon Лондон 2011
  4. ^ Fujitsu, Пример использования: Департамент по социальным и семейным вопросам Веб-сайт Fujitsu В архиве 2007-11-29 на Wayback Machine
  5. ^ Департамент по социальным вопросам и делам семьи, Постоянная разработка программы модернизации предоставления услуг Департамента, 2007 г., сайт электронных торгов
  6. ^ Ларри Константин: У императора нет одежды: обнаженные предметы встречаются с интерфейсом
  7. ^ Поусон, Ричард; Уэйд, Винсент (2003). «Гибкая разработка с использованием голых объектов». Экстремальное программирование и гибкие процессы в разработке программного обеспечения. XP'03. LNCS. 2675. С. 97–103. Дои:10.1007/3-540-44870-5_13. ISSN  0302-9743.
  8. ^ Хейвуд, Д., Доменно-ориентированный дизайн с использованием обнаженных объектов, 2009, Программисты-прагматики
  9. ^ Хейвуд, D (2004) MDA: Хорошая идея, жаль ...