The Observer pattern defines a one-to-many dependency between objects so that when one object changes state, all dependents are notified. Java's AWT and Swing use this in their event model - listeners (observers) register with components (subjects) to receive event notifications.