本文介绍了AWT和Swing组件使用观察者模式消除了GUI事件生成与它们在指定应用程序中的语义之间的耦合。类似地,Swing的模型类,也使用观察者消除数据模型表示与视图生成之间的耦合,从而支持相同数据的多个独立的视图。为了支持侦听器,对象需要维护一个已登记的侦听器列表,提供侦听器登记和取消登记的手段,并在适当的事件发生时调用每个侦听器。使用和支持侦听器很容易,但是在登记接口的两边都应当避免一些缺陷。侦听器涉及的任何对象,都应当是线程安全的,或者是受线程约束的对象,侦听器应当确定自己正在正确的线程中执行。