We argue that all three of those pieces of information are natural properties of the domain object, scattering that information across multiple screens and/or controllers is a bad idea.
By placing it where we have the information is picked up and interpreted by any of the different UIs in a form that fits that style of UI.
Naked Objects supports the dependency injection pattern as pioneered by the Spring framework.
Naked Objects does not depend upon Spring; we tend to use Spring in our deployments to look after dependency injection between components of the overall architecture; but the Naked Objects framework has its own automatic mechanism for injecting dependencies into domain object instances.
If the UI generated by the framework is rigid in structure and not intuitive to users, this could limit the adoption of Naked Objects frameworks such as Naked Objects MVC.
My previous observation of having a sound domain model and not necessarily having a good UI should be qualified by the times in which this software was written.
Naked Objects 3.0 is also designed to make it easier to write other forms of generic user interface.
Over the next few months we expect to see several new user interfaces made available for Naked Objects, including a command line interface, and an Eclipse RCP user interface.
For those not familiar with earlier versions, Naked Objects is an open-source Java-based framework that takes a POJO domain object model and turns it into a complete, executable application.
It auto-creates a user interface that is a direct reflection of the domain model, offering the option of either a rich-client interface or a pure HTML interface as shown below (you can view both on our online demonstration application); and it auto-creates a persistence layer using Hibernate.