Years ago, before the name Naked Object was even coined, I constructed a naked object interface.
It failed. Dismally. I mean, I personally used it to tweak things, but my users uniformly hated it. Today I stumbled across the notion again at http://www.nakedobjects.org and the thought collided in my mind with a quote from Bjarne Stroustrup: http://www.artima.com/intv/goldilocks3.html "My rule of thumb is that you should have a real class with an interface and a hidden representation if and only if you can consider an invariant for the class." So my first Thought for the Day on Naked Objects.... "Objects should never be so Naked as to be able to corrupt the invariant." ie. Not all methods and setters should be visible, only those invariant preserving public accessors. Thought 2... That Naked Object system I did all those many years ago exposed the internal representation of the object. In that case it was water level in a cell measured in meters. The users cared not a fig for water level. They thought in terms of volume (m^3), an a very complex routine mapped between the two. So my second Thought for the Day on Naked Objects.... If the internal representation differs painfully from the users external view on it, the Naked Object should by default dress itself up a little to present the users view. ie. Naked Objects Bad. Flimsily dressed objects with mostly see-through clothing and the occasional corset - Good. John Carter Phone : (64)(3) 358 6639 Tait Electronics Fax : (64)(3) 359 4632 PO Box 1645 Christchurch Email : [EMAIL PROTECTED] New Zealand The universe is absolutely plastered with the dashed lines exactly one space long. To Post a message, send it to: [EMAIL PROTECTED] To Unsubscribe, send a blank message to: [EMAIL PROTECTED] ad-free courtesy of objectmentor.com Yahoo! Groups Links <*> To visit your group on the web, go to: http://groups.yahoo.com/group/extremeprogramming/ <*> To unsubscribe from this group, send an email to: [EMAIL PROTECTED] <*> Your use of Yahoo! Groups is subject to: http://docs.yahoo.com/info/terms/
