Naked objects

Материал из Википедии — свободной энциклопедии
Перейти к: навигация, поиск

Naked objects (дословно с английского можно перевести как «оголённые объекты») — архитектурный шаблон программного обеспечения, используемый в разработке программного обеспечения в инженерии ПО.

Определение[править | править вики-текст]

Шаблон Naked objects определяется с помощью трех принципов:

1. Вся бизнес-логика должна быть инкапсулирована в бизнес-объект domain objects. Данный принцип не является уникальной особенностью naked objects: это только строгое следование обязательствам, определенным инкапсуляцией.

2. Интерфейс пользователя должен быть прямым представлением объектов предметной области (domain objects), со всеми действиями пользователя, явно содержащими создание или получение объектов предметной области и/или вызовы методов этих объектов. Данный прицпип также не является уникальной особеннстью naked objects: это только частная интерпретация объектно-ориентированного пользовательского интерфейса object-oriented user interface (OOUI).

Подлинная идея шаблона Naked objects возникает из комбинации обоих вышеперечисленных идей в форме третьего принципа:

3. Пользовательский интерфейс может быть сформирован полностью автоматически из определения объектов предметной области (domain objects). Данный припцип может быть реализован путем использования нескольких технологий таких, как кодогенерация и рефлексия.

Паттерн Naked objects был впервые формально определен в диссертации PhD[1], которая включала тщательное исследование which includes a thorough investigation of various antecedents and inspirations for the шаблона, включая, например, Morphic пользовательский интерфейс.

Naked Objects обыкновенно противопоставляют шаблону model-view-controller. Тем не менее, опубликованная версия диссертации Поусона (Pawson)(см. Ссылки) содержит предисловие Trygve Reenskaug, изобретателя шаблона model-view-controller, говорящее о том, что naked objects ближе к оригинальной идее Модель-Представление-Контроллер, чем последующие интерпретации и реализации.

Критика[править | править вики-текст]

Шаблон Naked objects начал подвергаться определенной доле критики с момента первой публичной демонстрации идеи на конференции OOPSLA 2001, проводившейся под эгидой Intriguing Technologies. Критика данного подхода обычно фокусируется на одной из трех основных областей:

  • Достоверность намерения инкапсулировать всю бизнес-логику в объект предментной области (domain objects). Аргументы ЗА и ПРОТИВ данной идеи могут быть найдены в исследовательской литературе по объектно-ориентированному программированию и проблемно-ориентированному проектированию domain-driven design.
  • Применимость объектно-ориентированного пользовательского интерфейса[2].
  • Юзабилити (пригодность к использованию) обобщенного (generic) пользовательского интерфейса.

Хотя ни один из приведённых выше аргументов не является специфичным именно для данного шаблона, тот факт, что naked objects комбинирует все три идеи вместе, делает его особенно уязвимым к этой критике.

Примечания[править | править вики-текст]

  1. Pawson, R., Naked Objects, Ph.D Thesis, 2004, Trinity College, Dublin, Ireland pdf version
  2. Larry Constantine: The Emperor Has No Clothes: Naked Objects Meet the Interface

Ссылки[править | править вики-текст]