The Presentation-Abstraction-Control (PAC) pattern structures interactive software systems as a hierarchy of cooperating agents. Each agent has three components: presentation for the user interface, abstraction for the data model and functionality, and control for communication. This separates human and functional concerns and supports modularity, extensibility, and distribution of the system. Examples of PAC include air traffic control systems and content management systems like Drupal.