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], которая включала тщательное исследование различных предшественников шаблона, включая, например, Morphic пользовательский интерфейс.

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

Критика

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

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

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

Примечания

  1. Pawson, R., Naked Objects, Ph.D Thesis, 2004, Trinity College, Dublin, Ireland pdf version Архивировано 27 июня 2014 года.
  2. Larry Constantine: The Emperor Has No Clothes: Naked Objects Meet the Interface Архивная копия от 10 января 2009 на Wayback Machine

Литература

  • Dan Haywood. Domain-driven Design Using Naked Objects. — Pragmatic Bookshelf, 2009. — 397 p. — ISBN 978-1-934356-44-9.
  • Richard Pawson, Robert Matthews. Naked Objects. — Wiley, 2003. — 265 p. — ISBN 978-0-470-84420-5.

Content Disclaimer

Informasi ini disarikan dari Wikipedia dan disajikan kembali untuk tujuan edukasi. Konten tersedia di bawah lisensi CC BY-SA 3.0. Kami tidak bertanggung jawab atas ketidakakuratan data yang bersumber dari kontribusi publik tersebut.

  1. The information displayed on this website is sourced in part or in whole from Wikipedia and has been adapted for the purpose of restating it. We strive to provide accurate and relevant information, however:
  2. There is no guarantee of absolute accuracy. Wikipedia is an open, collaborative project that can be edited by anyone, so information is subject to change.
  3. It is not intended to constitute professional advice. The content displayed is for informational and educational purposes only. For important decisions (e.g., medical, legal, or financial), please consult a professional.
  4. Content copyright. Wikipedia is licensed under the Creative Commons Attribution-ShareAlike License (CC BY-SA). This means that content may be reused with appropriate attribution and shared under a similar license.
  5. Responsible use. Any risk arising from the use of information from this website is entirely the responsibility of the user.