1000 Java Tips ebook
Free "1000 Java Tips" eBook is here! It is huge collection of big and small Java
programming articles and tips. Please take your copy here.
Take your copy of free "Java Technology Screensaver"!.
GUI Structural Patterns
JavaFAQ Home » Swing, AWT
Structuring the program - Separating the Model
In all ways of structuring a GUI program, there is one vitally important
issue -- separating the code which is the essence of the problem from the user
interface. This logical part is variously referred to as the model,
business logic, abstraction, or document. This code must not
refer to the user interface directly -- it will interact with the user interface
code by returning values or invoking listeners.
Motivation. There are two compelling reasons for this separation.
- Lower complexity -- Programs end up being less complex and therefore
easier (cheaper) to modify. For the smallest programs this may not be
obvious, but the benefits show up very quickly as a program grows. This is
not an advantage only in large programs.
- Interface Flexibility -- This allows changes to the user interface, eg,
moving from Swing to SWT, or to a web interface. You should be able to use
your basic logic code (if applicable) with the following interfaces.
- GUI interface. And it should be easy to change between Swing, SWT,
XML based GUI, etc.
- Command line interface - yes, some Unix sysadmins might want to run
it that way.
- Web based interface.
- MVC - Model-View-Controller Pattern
- This classic pattern is widely used, altho the Presentation-Document
pattern below is a more common (because it's simpler) choice for small
- The View component presents the output and may interact with
the Model to do so.
- The Controller component accepts user input. It typically
interacts with both the View and Model.
- The Model implements the logic, and knows nothing about the
- Presentation-Document Pattern
- This pattern is perhaps the best choice for small GUI applications.
- The Presentation contains all user interface code (the View and
- The Document is the logic, model, etc.
- PAC - Presentation-Abstraction-Control Pattern
- This is the application of stepwise refinement to GUIs. Parts of the GUI
are each implemented as in MVC, and these parts are put together using MVC.
This is basically a recursively applied MVC model. It would only be used for
- The Abstraction corresponds to the Model in MVC.
- The PAC pattern has a hierarchy of agents, each structured in the
Printer Friendly Page
Send to a Friend
Search here again if you need more info!