The naked objects pattern is defined by three principles:

  • All business logic should be encapsulated onto the domain objects. This principle is not unique to naked objects: it is just a strong commitment to encapsulation.

  • The user interface should be a direct representation of the domain objects, with all user actions explicitly consist in the creating or the retrieving of domain objects and/or invoking methods on those objects. This principle is also not unique to naked objects: it is just a specific interpretation of an object-oriented user interface (OOUI).

  • The original idea in the naked objects pattern arises from the combination of these two which form the third principle:

The user interface shall be 100% automatically created from the definition of the domain objects. This may be done using several different technologies, including source code generation; implementations of the naked objects pattern to date have favoured the technology of reflection.

The naked objects pattern was first described formally in Richard Pawson’s PhD thesis which includes a thorough investigation of various antecedents and inspirations for the pattern including, for example, the Morphic user interface.