Presentation-abstraction-control

From Wikipedia, the free encyclopedia

Presentation-abstraction-control (PAC) is a software architectural pattern, somewhat similar to model-view-controller (MVC). PAC is used as a hierarchical structure of agents, each consisting of a triad of presentation, abstraction and control parts. The agents (or triads) communicate with each other only through the control part of each triad. It also differs from MVC in that within each triad, it completely insulates the presentation (view in MVC) and the abstraction (model in MVC), this provides the option to separately multithread the model and view which can give the user experience of very short program start times, as the user interface (presentation) can be shown before the abstraction has fully initialized.

The structure of an application with PAC.
The structure of an application with PAC.

[edit] Hierarchical-Model-View-Controller (HMVC)

A subset or variation of PAC under the name Hierarchical-Model-View-Controller (HMVC) was published in an article[1] in JavaWorld Magazine, the authors apparently unaware[2] of PAC which was published 13 years earlier. The main difference between HMVC and PAC is that HMVC is less strict in that it allows the view and model of each agent to communicate directly, thus bypassing the controller.

[edit] See also

[edit] References

[edit] External links

[edit] Notes

  1. ^ Jason Cai, Ranjit Kapila, and Gaurav Pal (July, 2000). "HMVC: The layered pattern for developing strong client tiers". JavaWorld Magazine. Retrieved on 2006-05-25. 
  2. ^ "TP" (2000). "Is HMVC PAC? (letter to the editor)". JavaWorld Magazine. Retrieved on 2006-05-25. 
  3. ^ Laurence Nigay (1991). "Building User Interfaces: Organizing Software Agents.". ESPRIT '91 Conference. Brussels, Belgium: November 1991. 
  4. ^ Laurence Nigay (January 1994). Conception et modélisation logicielles des systèmes interactifs : application aux interfaces multimodales (in French, with abstract in English). PhD dissertation, 315 pages, University of Grenoble, France, pp. 131-268. 
  5. ^ Nigay, Laurence; Joëlle Coutaz (1997). "Software Architecture Modelling: Bridging Two Worlds Using Ergonomics and Software Properties.", Formal Methods in Human-Computer Interaction. Springer-Verlag, chapter 3, pp. 49-73. ISBN 3-540-76158-6. 
In other languages