On Friday 09 March 2001 12:44, Guerry A. Semones wrote: > The Facade pattern according to Fowler: "A facade is a type that > provides a simplified interface to a complicated model" (Analysis > Patterns, p.247). The Model-View-Controller (MVC) pattern essentially > tries to separate the model (data and logic) and the view (UI) with a > controller (which knows about both). Please don't anyone slam my > definition, I'm sure its not sufficient, but I've got the flu and > other such excuses :-). > That's no excuse! :-D Seriously, the FOX GUI (while Lyle Johnson is busilly porting to Ruby) appears to implement much of what you are talking about, here, with its message/target system. The GUI sends and receives messages to/from the "guts" of your application and handles them accordingly. Essentially, in a component based architecture, and especially one that is, say, open source and developed by people living on different sides of the globe, the UI/application logic separation is a necessity. When the UI and the logic models are separated, then neither has to know much of anything about the other except in regard to the messages. This reflects other threads/discussions regarding a "common tongue" such as XML. Ideally, if you are working on the "business logic" and I on the GUI and, say, Ben, on a console UI, none of us should really need to know much about what the other is doing other than decoding the messag traffice between/among the various modules into a working "presentation" relative to the environment where the information is displayed. The ability to concentrate upon the internals of one's specific module (whether UI or business logic) without detailed regard to the others should certainly spped development and result in more robust (because they are more easily tested) components. This should also, I think, speed cross-platform development as GUI components can be made platform specific without changing the underlying operational structure of the application. Also, I wish to point out that in all of our discussions involving GUI's here we have mentioned Tk,wxWindows, Fox, FLTK, GTK, QT, etc. but have forgotten mention of a common GUI now emerging as a critical component, that is POB (=plain old browser *smile* Ok, someone _did_ mention Mozilla!) In an ASP (the universal acronym, not the Windows platform specific one *smile*) this _is_ the "natural" UI. Increasing, the borwser is becoming the desktop! :-) (IBM incidentally is taking some very intriguing conceptual leaps in this direction with "weblications" embedded into the desktop environment). Finally, regarding console UI, Apachetoobox.com provides a very detailed while easy-to-use/understand UI (IMO), although in the not-too-distant I suspect that someone(s) will be providing GUIs (probably Tk and/or GTK) for Apachetoolbox.(BTW, ecause someone will probably mention it, I do have some "problems" with Apachetoolbox, but these are security issues having nothing to do with the UI. I don't feel exactly comfortable being logged on the the Internet as "root"!) Also, in Linux land, there are several utilities that provide graphical dialogs from stdout or stderr for those who simply _must_ have a"box", although Ben probably wouldn't want these :-) Regards, Kent Starr elderburn / mindspring.com