Naked objects (literally from English can be translated as “bare objects”) is an architectural template used in software development in software engineering .
Content
Definition
The Naked objects pattern is defined using three principles:
1. All business logic must be encapsulated in a domain object business object. This principle is not a unique feature of naked objects: it is only strict adherence to the obligations defined by encapsulation .
2. The user interface should be a direct representation of domain objects , with all user actions explicitly containing the creation or receipt of domain objects and / or method calls to these objects. This principle is also not a unique feature of naked objects: it is only a private interpretation of the object -oriented user interface (OOUI).
The true idea of the Naked objects pattern arises from a combination of both of the above ideas in the form of a third principle:
3. The user interface can be formed completely automatically from the definition of domain objects. This principle can be implemented by using several technologies such as code generation and reflection.
The Naked objects pattern was first formally defined in PhD's dissertation [1] , which included a thorough study of various template predecessors, including, for example, the Morphic user interface.
Naked Objects are usually contrasted with a model-view-controller pattern. However, the published version of the Pawson dissertation (see References) contains a preface by Trygve Reenskaug , the inventor of the model-view-controller template , stating that naked objects are closer to the original Model-View-Controller idea than subsequent interpretations and implementation.
Criticism
The Naked objects pattern has come under some criticism since the first public demonstration of the idea at the OOPSLA 2001 conference, sponsored by Intriguing Technologies . Criticism of this approach usually focuses on one of three main areas:
- Validity of intent to encapsulate all business logic in a domain object. The pros and cons of this idea can be found in the research literature on object-oriented programming and domain-driven design .
- Applicability of an object-oriented user interface [2] .
- Usability (usability) of the generic user interface.
Although none of the above arguments is specific to this template, the fact that naked objects combines all three ideas together makes it especially vulnerable to this criticism.
Notes
- ↑ Pawson, R., Naked Objects, Ph.D. Thesis, 2004, Trinity College, Dublin, Ireland pdf version Archived June 27, 2014.
- ↑ Larry Constantine: The Emperor Has No Clothes: Naked Objects Meet the Interface
Literature
- 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 .