Observer (ook bekend als Subject-Observer, Dependents of Publish-Subscribe) is een ontwerppatroon in de object-georiënteerde softwareontwikkeling. Het patroon beschrijft een efficiënte en redelijk ontkoppelde manier waarop objecten in een programma kennis kunnen nemen van relevante toestandsveranderingen binnen andere objecten in hetzelfde programma.